tfe 支持 zlog
This commit is contained in:
@@ -1,27 +1,13 @@
|
|||||||
[doh]
|
[doh]
|
||||||
# default 1
|
|
||||||
enable=1
|
enable=1
|
||||||
|
|
||||||
[log]
|
|
||||||
# default 10
|
|
||||||
# RLOG_LV_DEBUG : 10
|
|
||||||
# RLOG_LV_INFO : 20
|
|
||||||
# RLOG_LV_FATAL : 30
|
|
||||||
log_level=10
|
|
||||||
|
|
||||||
[maat]
|
[maat]
|
||||||
# default TSG_OBJ_APP_ID
|
|
||||||
table_appid=TSG_OBJ_APP_ID
|
table_appid=TSG_OBJ_APP_ID
|
||||||
# default TSG_SECURITY_ADDR
|
|
||||||
table_addr=TSG_SECURITY_ADDR
|
table_addr=TSG_SECURITY_ADDR
|
||||||
# default TSG_FIELD_DOH_QNAME
|
|
||||||
table_qname=TSG_FIELD_DOH_QNAME
|
table_qname=TSG_FIELD_DOH_QNAME
|
||||||
# default TSG_FIELD_HTTP_HOST
|
|
||||||
table_host=TSG_FIELD_DOH_HOST
|
table_host=TSG_FIELD_DOH_HOST
|
||||||
|
|
||||||
[kafka]
|
[kafka]
|
||||||
# default 0
|
|
||||||
ENTRANCE_ID=0
|
ENTRANCE_ID=0
|
||||||
# default 1
|
|
||||||
# if enable "en_sendlog", the iterm "tfe.conf [kafka] enable" must set 1
|
# if enable "en_sendlog", the iterm "tfe.conf [kafka] enable" must set 1
|
||||||
en_sendlog=1
|
en_sendlog=1
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
[debug]
|
[debug]
|
||||||
log_level=10
|
|
||||||
enable_plugin=1
|
enable_plugin=1
|
||||||
|
|
||||||
[log]
|
[log]
|
||||||
|
|||||||
@@ -125,10 +125,6 @@ tcp_user_timeout=600
|
|||||||
tcp_ttl_upstream=75
|
tcp_ttl_upstream=75
|
||||||
tcp_ttl_downstream=70
|
tcp_ttl_downstream=70
|
||||||
|
|
||||||
[log]
|
|
||||||
level=10
|
|
||||||
location=log/tfe.log
|
|
||||||
|
|
||||||
[stat]
|
[stat]
|
||||||
statsd_server=192.168.10.72
|
statsd_server=192.168.10.72
|
||||||
statsd_port=8126
|
statsd_port=8126
|
||||||
@@ -137,9 +133,6 @@ statsd_cycle=5
|
|||||||
statsd_format=2
|
statsd_format=2
|
||||||
histogram_bins=0.5,0.8,0.9,0.95
|
histogram_bins=0.5,0.8,0.9,0.95
|
||||||
|
|
||||||
[http]
|
|
||||||
loglevel=20
|
|
||||||
|
|
||||||
[traffic_mirror]
|
[traffic_mirror]
|
||||||
enable=1
|
enable=1
|
||||||
device=eth4
|
device=eth4
|
||||||
|
|||||||
20
conf/tfe/zlog.conf
Normal file
20
conf/tfe/zlog.conf
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# kill -s SIGHUP "pid"
|
||||||
|
|
||||||
|
[global]
|
||||||
|
|
||||||
|
default format = "%d(%c), %V, %F, %U, %m%n"
|
||||||
|
|
||||||
|
[levels]
|
||||||
|
|
||||||
|
DEBUG=10
|
||||||
|
INFO=20
|
||||||
|
FATAL=30
|
||||||
|
|
||||||
|
[rules]
|
||||||
|
|
||||||
|
*.fatal "./log/error.log.%d(%F)";
|
||||||
|
tfe.DEBUG "./log/tfe.log.%d(%F)";
|
||||||
|
http.DEBUG "./log/http.log.%d(%F)";
|
||||||
|
http2.DEBUG "./log/http2.log.%d(%F)";
|
||||||
|
doh.DEBUG "./log/doh_pxy.log.%d(%F)";
|
||||||
|
pangu.DEBUG "./log/pangu_pxy.log.%d(%F)";
|
||||||
@@ -239,7 +239,10 @@ static void __signal_handler_cb(evutil_socket_t fd, short what, void * arg)
|
|||||||
{
|
{
|
||||||
case SIGTERM:
|
case SIGTERM:
|
||||||
case SIGQUIT:
|
case SIGQUIT:
|
||||||
case SIGHUP: break;
|
case SIGHUP:
|
||||||
|
TFE_LOG_ERROR(ctx->logger, "recv SIGHUP, reload zlog.conf");
|
||||||
|
MESA_handle_runtime_log_reconstruction(NULL);
|
||||||
|
break;
|
||||||
case SIGUSR1: break;
|
case SIGUSR1: break;
|
||||||
case SIGPIPE:
|
case SIGPIPE:
|
||||||
TFE_PROXY_STAT_INCREASE(STAT_SIGPIPE, 1);
|
TFE_PROXY_STAT_INCREASE(STAT_SIGPIPE, 1);
|
||||||
@@ -724,6 +727,7 @@ int main(int argc, char * argv[])
|
|||||||
{
|
{
|
||||||
const char * main_profile = "./conf/tfe/tfe.conf";
|
const char * main_profile = "./conf/tfe/tfe.conf";
|
||||||
const char * future_profile= "./conf/tfe/future.conf";
|
const char * future_profile= "./conf/tfe/future.conf";
|
||||||
|
const char * zlog_profile = "./conf/tfe/zlog.conf";
|
||||||
|
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int opt = 0;
|
int opt = 0;
|
||||||
@@ -749,22 +753,23 @@ int main(int argc, char * argv[])
|
|||||||
|
|
||||||
fprintf(stderr, "Tango Frontend Engine, Version: %s", __tfe_version);
|
fprintf(stderr, "Tango Frontend Engine, Version: %s", __tfe_version);
|
||||||
|
|
||||||
|
if (0 != MESA_handle_runtime_log_creation(zlog_profile))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "MESA_handle_runtime_log_creation return error\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
/* adds locking, only required if accessed from separate threads */
|
/* adds locking, only required if accessed from separate threads */
|
||||||
evthread_use_pthreads();
|
evthread_use_pthreads();
|
||||||
unsigned int __log_level = RLOG_LV_INFO;
|
|
||||||
MESA_load_profile_uint_def(main_profile, "log", "level", &__log_level, RLOG_LV_INFO);
|
|
||||||
|
|
||||||
char __log_path[TFE_STRING_MAX]= {};
|
g_default_logger = MESA_create_runtime_log_handle("tfe", RLOG_LV_DEBUG);
|
||||||
MESA_load_profile_string_def(main_profile, "log", "location", __log_path, sizeof(__log_path), "log/tfe.log");
|
if (unlikely(g_default_logger == NULL))
|
||||||
|
|
||||||
g_default_logger = MESA_create_runtime_log_handle(__log_path, __log_level);
|
|
||||||
if (unlikely(g_default_logger == NULL))
|
|
||||||
{
|
{
|
||||||
TFE_LOG_ERROR(g_default_logger, "Failed at creating default logger: %s", "log/tfe.log");
|
TFE_LOG_ERROR(g_default_logger, "Failed at creating default logger: %s", "log/tfe.log");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* PROXY INSTANCE */
|
/* PROXY INSTANCE */
|
||||||
g_default_proxy = ALLOC(struct tfe_proxy, 1);
|
g_default_proxy = ALLOC(struct tfe_proxy, 1);
|
||||||
assert(g_default_proxy);
|
assert(g_default_proxy);
|
||||||
strcpy(g_default_proxy->name, "tfe3a");
|
strcpy(g_default_proxy->name, "tfe3a");
|
||||||
|
|||||||
@@ -578,7 +578,6 @@ int doh_on_init(struct tfe_proxy *proxy)
|
|||||||
assert(g_doh_conf);
|
assert(g_doh_conf);
|
||||||
|
|
||||||
MESA_load_profile_int_def(profile, "doh", "enable", &(g_doh_conf->enable), 1);
|
MESA_load_profile_int_def(profile, "doh", "enable", &(g_doh_conf->enable), 1);
|
||||||
MESA_load_profile_int_def(profile, "log", "log_level", &(g_doh_conf->local_level), 10);
|
|
||||||
|
|
||||||
if (!g_doh_conf->enable)
|
if (!g_doh_conf->enable)
|
||||||
{
|
{
|
||||||
@@ -588,7 +587,7 @@ int doh_on_init(struct tfe_proxy *proxy)
|
|||||||
TFE_LOG_INFO(NULL, "Doh enabled.");
|
TFE_LOG_INFO(NULL, "Doh enabled.");
|
||||||
|
|
||||||
g_doh_conf->thread_num = tfe_proxy_get_work_thread_count();
|
g_doh_conf->thread_num = tfe_proxy_get_work_thread_count();
|
||||||
g_doh_conf->local_logger = MESA_create_runtime_log_handle("./log/doh_pxy.log", g_doh_conf->local_level);
|
g_doh_conf->local_logger = MESA_create_runtime_log_handle("doh", RLOG_LV_DEBUG);
|
||||||
|
|
||||||
g_doh_conf->gc_evbase = tfe_proxy_get_gc_evbase();
|
g_doh_conf->gc_evbase = tfe_proxy_get_gc_evbase();
|
||||||
g_doh_conf->fs_handle = tfe_proxy_get_fs_handle();
|
g_doh_conf->fs_handle = tfe_proxy_get_fs_handle();
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ struct doh_conf
|
|||||||
int enable;
|
int enable;
|
||||||
int thread_num;
|
int thread_num;
|
||||||
|
|
||||||
int local_level;
|
|
||||||
void *local_logger;
|
void *local_logger;
|
||||||
|
|
||||||
int entry_id;
|
int entry_id;
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ struct pangu_rt
|
|||||||
Maat_feather_t maat;
|
Maat_feather_t maat;
|
||||||
struct pangu_logger * send_logger;
|
struct pangu_logger * send_logger;
|
||||||
void * local_logger;
|
void * local_logger;
|
||||||
int log_level;
|
|
||||||
int thread_num;
|
int thread_num;
|
||||||
int scan_table_id[__SCAN_TABLE_MAX];
|
int scan_table_id[__SCAN_TABLE_MAX];
|
||||||
int plolicy_table_id[POLICY_PROFILE_TABLE_MAX];
|
int plolicy_table_id[POLICY_PROFILE_TABLE_MAX];
|
||||||
@@ -843,8 +842,7 @@ error_out:
|
|||||||
|
|
||||||
int pangu_http_init(struct tfe_proxy * proxy)
|
int pangu_http_init(struct tfe_proxy * proxy)
|
||||||
{
|
{
|
||||||
const char * profile_path = "./conf/pangu/pangu_pxy.conf";
|
const char * profile_path = "./conf/pangu/pangu_pxy.conf";;
|
||||||
const char * logfile = "./log/pangu_pxy.log";
|
|
||||||
int temp=0;
|
int temp=0;
|
||||||
|
|
||||||
g_pangu_rt = ALLOC(struct pangu_rt, 1);
|
g_pangu_rt = ALLOC(struct pangu_rt, 1);
|
||||||
@@ -857,10 +855,9 @@ int pangu_http_init(struct tfe_proxy * proxy)
|
|||||||
g_pangu_rt->thread_num = tfe_proxy_get_work_thread_count();
|
g_pangu_rt->thread_num = tfe_proxy_get_work_thread_count();
|
||||||
g_pangu_rt->gc_evbase=tfe_proxy_get_gc_evbase();
|
g_pangu_rt->gc_evbase=tfe_proxy_get_gc_evbase();
|
||||||
|
|
||||||
MESA_load_profile_int_def(profile_path, "DEBUG", "LOG_LEVEL", &(g_pangu_rt->log_level), 0);
|
g_pangu_rt->local_logger = MESA_create_runtime_log_handle("pangu", RLOG_LV_DEBUG);
|
||||||
g_pangu_rt->local_logger = MESA_create_runtime_log_handle(logfile, g_pangu_rt->log_level);
|
|
||||||
|
|
||||||
g_pangu_rt->send_logger = pangu_log_handle_create(profile_path, "LOG", g_pangu_rt->local_logger);
|
g_pangu_rt->send_logger = pangu_log_handle_create(profile_path, "LOG", g_pangu_rt->local_logger);
|
||||||
if (!g_pangu_rt->send_logger)
|
if (!g_pangu_rt->send_logger)
|
||||||
{
|
{
|
||||||
goto error_out;
|
goto error_out;
|
||||||
|
|||||||
@@ -22,10 +22,6 @@ struct http_plugin
|
|||||||
struct event * gc_event_hs_private[TFE_THREAD_MAX];
|
struct event * gc_event_hs_private[TFE_THREAD_MAX];
|
||||||
/* ACCESS LOGGER */
|
/* ACCESS LOGGER */
|
||||||
void * logger;
|
void * logger;
|
||||||
/* LOGLEVE */
|
|
||||||
int log_level;
|
|
||||||
/* LOGFILE */
|
|
||||||
char log_file[TFE_STRING_MAX];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct http_plugin * g_http_plugin;
|
extern struct http_plugin * g_http_plugin;
|
||||||
|
|||||||
@@ -55,21 +55,11 @@ static void http_plugin_session_gc_cb(evutil_socket_t fd, short what, void * arg
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <MESA/MESA_prof_load.h>
|
|
||||||
int http_plugin_config(struct tfe_proxy * proxy, struct http_plugin * ht_handle)
|
|
||||||
{
|
|
||||||
MESA_load_profile_int_def("conf/tfe/tfe.conf", "http", "loglevel", &ht_handle->log_level, RLOG_LV_INFO);
|
|
||||||
MESA_load_profile_string_def("conf/tfe/tfe.conf", "http", "logfile", ht_handle->log_file, sizeof(ht_handle->log_file), "log/http.log");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int http_plugin_init(struct tfe_proxy * proxy)
|
int http_plugin_init(struct tfe_proxy * proxy)
|
||||||
{
|
{
|
||||||
unsigned int nr_work_thread = tfe_proxy_get_work_thread_count();
|
unsigned int nr_work_thread = tfe_proxy_get_work_thread_count();
|
||||||
struct http_plugin * plugin_ctx = g_http_plugin;
|
struct http_plugin * plugin_ctx = g_http_plugin;
|
||||||
|
|
||||||
http_plugin_config(proxy, plugin_ctx);
|
|
||||||
|
|
||||||
for (unsigned int thread_id = 0; thread_id < nr_work_thread; thread_id++)
|
for (unsigned int thread_id = 0; thread_id < nr_work_thread; thread_id++)
|
||||||
{
|
{
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
@@ -99,8 +89,8 @@ int http_plugin_init(struct tfe_proxy * proxy)
|
|||||||
plugin_ctx->gc_event_hs_private[thread_id] = gc_event;
|
plugin_ctx->gc_event_hs_private[thread_id] = gc_event;
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin_ctx->logger = MESA_create_runtime_log_handle(plugin_ctx->log_file, plugin_ctx->log_level);
|
plugin_ctx->logger = MESA_create_runtime_log_handle("http", RLOG_LV_DEBUG);
|
||||||
assert(plugin_ctx->logger != NULL);
|
assert(plugin_ctx->logger != NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,10 +15,6 @@
|
|||||||
#include <http2_stream.h>
|
#include <http2_stream.h>
|
||||||
|
|
||||||
typedef struct RTLogInit2Data_ {
|
typedef struct RTLogInit2Data_ {
|
||||||
int run_log_level;
|
|
||||||
|
|
||||||
char run_log_path[256];
|
|
||||||
|
|
||||||
void *handle;
|
void *handle;
|
||||||
} RTLogInit2Data;
|
} RTLogInit2Data;
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
#include <http2_common.h>
|
#include <http2_common.h>
|
||||||
|
|
||||||
RTLogInit2Data logging_sc_lid = {
|
RTLogInit2Data logging_sc_lid = {
|
||||||
.run_log_level = 1,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
RTLogInit2Data *logger()
|
RTLogInit2Data *logger()
|
||||||
|
|||||||
@@ -46,13 +46,7 @@ struct event_timer_ctx
|
|||||||
void load_logging_conf(const char *config)
|
void load_logging_conf(const char *config)
|
||||||
{
|
{
|
||||||
RTLogInit2Data *logging_sc_lid = logger();
|
RTLogInit2Data *logging_sc_lid = logger();
|
||||||
|
logging_sc_lid->handle = MESA_create_runtime_log_handle("http2", RLOG_LV_DEBUG);
|
||||||
MESA_load_profile_int_def(config, (const char *)"http",(const char *)"loglevel",
|
|
||||||
&logging_sc_lid->run_log_level, 10);
|
|
||||||
MESA_load_profile_string_def(config, (const char *)"http",(const char *)"logfile",
|
|
||||||
logging_sc_lid->run_log_path, 128, "log/http2.log");
|
|
||||||
|
|
||||||
logging_sc_lid->handle = MESA_create_runtime_log_handle(logging_sc_lid->run_log_path, logging_sc_lid->run_log_level);
|
|
||||||
if(logging_sc_lid->handle == NULL){
|
if(logging_sc_lid->handle == NULL){
|
||||||
TFE_LOG_ERROR(logging_sc_lid->handle, "Create log runtime_log_handle error, init failed!");
|
TFE_LOG_ERROR(logging_sc_lid->handle, "Create log runtime_log_handle error, init failed!");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user