From 1c605938e01287a7369a500582afaca50cdebcac Mon Sep 17 00:00:00 2001 From: Nick Peng Date: Mon, 13 Mar 2023 23:20:03 +0800 Subject: [PATCH] dns_conf: add option to enable output log to console. --- etc/smartdns/smartdns.conf | 2 ++ src/dns_conf.c | 4 ++++ src/dns_conf.h | 2 ++ src/dns_server.c | 4 ++++ src/smartdns.c | 5 ++++- 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/etc/smartdns/smartdns.conf b/etc/smartdns/smartdns.conf index eaec35e..32f1a25 100644 --- a/etc/smartdns/smartdns.conf +++ b/etc/smartdns/smartdns.conf @@ -142,6 +142,7 @@ force-qtype-SOA 65 # set log level # log-level: [level], level=fatal, error, warn, notice, info, debug # log-file: file path of log file. +# log-console [yes|no]: output log to console. # log-size: size of each log file, support k,m,g # log-num: number of logs, 0 means disable log log-level info @@ -157,6 +158,7 @@ log-level info # audit-SOA [yes|no]: enable or disable log soa result. # audit-size size of each audit file, support k,m,g # audit-file /var/log/smartdns-audit.log +# audit-console [yes|no]: output audit log to console. # audit-file-mode [mode]: file mode of audit file. # audit-size 128k # audit-num 2 diff --git a/src/dns_conf.c b/src/dns_conf.c index 6b471e2..b720e1f 100644 --- a/src/dns_conf.c +++ b/src/dns_conf.c @@ -114,6 +114,7 @@ char dns_conf_log_file[DNS_MAX_PATH]; size_t dns_conf_log_size = 1024 * 1024; int dns_conf_log_num = 8; int dns_conf_log_file_mode; +int dns_conf_log_console; /* CA file */ char dns_conf_ca_file[DNS_MAX_PATH]; @@ -129,6 +130,7 @@ char dns_conf_audit_file[DNS_MAX_PATH]; size_t dns_conf_audit_size = 1024 * 1024; int dns_conf_audit_num = 2; int dns_conf_audit_file_mode; +int dns_conf_audit_console; /* address rules */ art_tree dns_conf_domain_rule; @@ -3142,6 +3144,7 @@ static struct config_item _config_item[] = { CONF_CUSTOM("log-file", _config_option_parser_filepath, (char *)dns_conf_log_file), CONF_SIZE("log-size", &dns_conf_log_size, 0, 1024 * 1024 * 1024), CONF_INT("log-num", &dns_conf_log_num, 0, 1024), + CONF_YESNO("log-console", &dns_conf_log_console), CONF_INT_BASE("log-file-mode", &dns_conf_log_file_mode, 0, 511, 8), CONF_YESNO("audit-enable", &dns_conf_audit_enable), CONF_YESNO("audit-SOA", &dns_conf_audit_log_SOA), @@ -3149,6 +3152,7 @@ static struct config_item _config_item[] = { CONF_INT_BASE("audit-file-mode", &dns_conf_audit_file_mode, 0, 511, 8), CONF_SIZE("audit-size", &dns_conf_audit_size, 0, 1024 * 1024 * 1024), CONF_INT("audit-num", &dns_conf_audit_num, 0, 1024), + CONF_YESNO("audit-console", &dns_conf_audit_console), CONF_INT("rr-ttl", &dns_conf_rr_ttl, 0, CONF_INT_MAX), CONF_INT("rr-ttl-min", &dns_conf_rr_ttl_min, 0, CONF_INT_MAX), CONF_INT("rr-ttl-max", &dns_conf_rr_ttl_max, 0, CONF_INT_MAX), diff --git a/src/dns_conf.h b/src/dns_conf.h index eeb7e6b..d3d9cd7 100644 --- a/src/dns_conf.h +++ b/src/dns_conf.h @@ -434,6 +434,7 @@ extern char dns_conf_log_file[DNS_MAX_PATH]; extern size_t dns_conf_log_size; extern int dns_conf_log_num; extern int dns_conf_log_file_mode; +extern int dns_conf_log_console; extern char dns_conf_ca_file[DNS_MAX_PATH]; extern char dns_conf_ca_path[DNS_MAX_PATH]; @@ -452,6 +453,7 @@ extern char dns_conf_audit_file[DNS_MAX_PATH]; extern size_t dns_conf_audit_size; extern int dns_conf_audit_num; extern int dns_conf_audit_file_mode; +extern int dns_conf_audit_console; extern char dns_conf_server_name[DNS_MAX_SERVER_NAME_LEN]; extern art_tree dns_conf_domain_rule; diff --git a/src/dns_server.c b/src/dns_server.c index 65bf69d..dc9e484 100644 --- a/src/dns_server.c +++ b/src/dns_server.c @@ -6720,6 +6720,10 @@ static int _dns_server_audit_init(void) tlog_set_permission(dns_audit, dns_conf_audit_file_mode, dns_conf_audit_file_mode); } + if (dns_conf_audit_console != 0) { + tlog_logscreen(dns_audit, 1); + } + return 0; } diff --git a/src/smartdns.c b/src/smartdns.c index c6356e7..9f3ba5c 100644 --- a/src/smartdns.c +++ b/src/smartdns.c @@ -441,7 +441,10 @@ static int _smartdns_init(void) goto errout; } - tlog_setlogscreen(verbose_screen); + if (verbose_screen != 0 || dns_conf_log_console != 0) { + tlog_setlogscreen(1); + } + tlog_setlevel(dns_conf_log_level); if (dns_conf_log_file_mode > 0) { tlog_set_permission(tlog_get_root(), dns_conf_log_file_mode, dns_conf_log_file_mode);