Logs inside the WebUI (#634)

This commit is contained in:
Elia Zammuto
2023-01-01 02:12:36 +01:00
committed by GitHub
parent 248b1bfa19
commit a5213c6225
8 changed files with 125 additions and 13 deletions

View File

@@ -336,6 +336,7 @@ sunshine_t sunshine {
platf::appdata().string() + "/sunshine.conf", // config file
{}, // cmd args
47989,
platf::appdata().string() + "/sunshine.log", // log file
};
bool endline(char ch) {
@@ -788,7 +789,7 @@ void apply_config(std::unordered_map<std::string, std::string> &&vars) {
path_f(vars, "pkey", nvhttp.pkey);
path_f(vars, "cert", nvhttp.cert);
string_f(vars, "sunshine_name", nvhttp.sunshine_name);
path_f(vars, "log_path", config::sunshine.log_file);
path_f(vars, "file_state", nvhttp.file_state);
// Must be run after "file_state"

View File

@@ -122,6 +122,7 @@ struct sunshine_t {
} cmd;
std::uint16_t port;
std::string log_file;
};
extern video_t video;

View File

@@ -274,6 +274,17 @@ void getApps(resp_https_t response, req_https_t request) {
response->write(content);
}
void getLogs(resp_https_t response, req_https_t request) {
if(!authenticate(response, request)) return;
print_req(request);
std::string content = read_file(config::sunshine.log_file.c_str());
SimpleWeb::CaseInsensitiveMultimap headers;
headers.emplace("Content-Type", "text/plain");
response->write(SimpleWeb::StatusCode::success_ok, content, headers);
}
void saveApp(resp_https_t response, req_https_t request) {
if(!authenticate(response, request)) return;
@@ -648,6 +659,7 @@ void start() {
server.resource["^/troubleshooting$"]["GET"] = getTroubleshootingPage;
server.resource["^/api/pin$"]["POST"] = savePin;
server.resource["^/api/apps$"]["GET"] = getApps;
server.resource["^/api/logs$"]["GET"] = getLogs;
server.resource["^/api/apps$"]["POST"] = saveApp;
server.resource["^/api/config$"]["GET"] = getConfig;
server.resource["^/api/config$"]["POST"] = saveConfig;

View File

@@ -101,6 +101,7 @@ int entry(const char *name, int argc, char *argv[]) {
}
} // namespace version
void log_flush() {
sink->flush();
}
@@ -219,6 +220,7 @@ int main(int argc, char *argv[]) {
boost::shared_ptr<std::ostream> stream { &std::cout, NoDelete {} };
sink->locked_backend()->add_stream(stream);
sink->locked_backend()->add_stream(boost::make_shared<std::ofstream>(config::sunshine.log_file));
sink->set_filter(severity >= config::sunshine.min_log_level);
sink->set_formatter([message = "Message"s, severity = "Severity"s](const bl::record_view &view, bl::formatting_ostream &os) {

View File

@@ -3,6 +3,7 @@
#ifndef SUNSHINE_MAIN_H
#define SUNSHINE_MAIN_H
#include <filesystem>
#include <string_view>
#include "thread_pool.h"
@@ -50,6 +51,4 @@ MAIL(idr);
MAIL(rumble);
#undef MAIL
} // namespace mail
#endif // SUNSHINE_MAIN_H