add some options for logger

This commit is contained in:
2024-04-15 08:24:59 +00:00
parent ebc180df95
commit ed2b9463df
3 changed files with 44 additions and 9 deletions

16
src/include/basic_defs.h Normal file
View File

@ -0,0 +1,16 @@
#ifndef BASIC_DEFS_H
#define BASIC_DEFS_H
#include <spdlog/async.h>
#include <spdlog/sinks/basic_file_sink.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/spdlog.h>
#include <argparse/argparse.hpp>
#include <iostream>
#include <string>
extern const std::string main_version;
extern const std::string build_version;
extern std::shared_ptr<spdlog::logger> logger_ptr;
extern const bool global_log_enabled;
extern const bool optimize_enabled;
#define LOG if constexpr (global_log_enabled) if (logger_ptr) logger_ptr
#endif

View File

@ -1,18 +1,25 @@
#include <spdlog/async.h>
#include <spdlog/sinks/basic_file_sink.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/spdlog.h>
#include <argparse/argparse.hpp>
#include <iostream>
#include <string>
#include "basic_defs.h"
const std::string main_version = "0.0.1";
const std::string build_version = GIT_COMMIT_HASH;
std::shared_ptr<spdlog::logger> logger_ptr;
#ifdef __OPTIMIZE__
const bool optimize_enabled = __OPTIMIZE__;
#else
const bool optimize_enabled = false;
#endif
#ifndef ENABLE_LOG
const bool global_log_enabled = false;
#else
const bool global_log_enabled = true;
#endif
int main(int argc, char *argv[]) {
argparse::ArgumentParser program("backend", main_version + "-" + build_version);
argparse::ArgumentParser fsck_command("fsck");
fsck_command.add_description("Check and fix data");
program.add_subparser(fsck_command);
argparse::ArgumentParser server_command("server");
server_command.add_description("Start RESTful server");
program.add_subparser(server_command);
program.add_argument("-d", "--directory").help("Directory to serve").default_value(std::string(".")).nargs(1, 1);
auto &group = program.add_mutually_exclusive_group();
group.add_argument("-c", "--consolelog").help("Enable console log").default_value(false).implicit_value(true);
@ -55,7 +62,8 @@ int main(int argc, char *argv[]) {
else
logger_ptr = spdlog::basic_logger_mt<spdlog::async_factory>("file_logger", log_file_name);
}
if (logger_ptr) logger_ptr->info("Starting backend");
if (logger_ptr) logger_ptr->info("Data directory: {}", data_directory);
LOG->info("Starting backend");
LOG->info("Compile optimization enabled: {}", optimize_enabled);
LOG->info("Data directory: {}", data_directory);
return 0;
}