Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtjoms Rimdjonoks <artjoms.rimdjonoks@zabbix.com>2022-11-09 11:05:17 +0300
committerArtjoms Rimdjonoks <artjoms.rimdjonoks@zabbix.com>2022-11-09 11:05:17 +0300
commitbbaed9ff730649ac34b0c0be1e7d13ac39f75cbb (patch)
tree8fca9bea361a5312201f8ec8039d22bb88611b24
parent8c39dc84f840d3ce17d7fa4517eb36622a6a5d3e (diff)
parent87e29798bfe984bd6ed3e5c1ce36d45f499ffa5f (diff)
.......... [DEV-2134] refactored global variables CONFIG_LOG_TYPE_STR, CONFIG_LOG_TYPE, CONFIG_LOG_FILE and CONFIG_LOG_FILE_SIZE
-rw-r--r--include/cfg.h4
-rw-r--r--include/log.h17
-rw-r--r--include/zbxnix.h3
-rw-r--r--src/libs/zbxconf/cfg.c4
-rw-r--r--src/libs/zbxlog/log.c36
-rw-r--r--src/libs/zbxnix/daemon.c7
-rw-r--r--src/zabbix_agent/zabbix_agentd.c21
-rw-r--r--src/zabbix_js/zabbix_js.c13
-rw-r--r--src/zabbix_proxy/proxy.c21
-rw-r--r--src/zabbix_sender/zabbix_sender.c3
-rw-r--r--src/zabbix_server/server.c23
-rw-r--r--tests/libs/zbxcommon/Makefile.am1
-rw-r--r--tests/libs/zbxtime/Makefile.am1
-rw-r--r--tests/libs/zbxtrends/Makefile.am1
14 files changed, 96 insertions, 59 deletions
diff --git a/include/cfg.h b/include/cfg.h
index 567016329a8..c0bd6216f08 100644
--- a/include/cfg.h
+++ b/include/cfg.h
@@ -45,10 +45,6 @@
#define ZBX_PROXY_HEARTBEAT_FREQUENCY_MAX SEC_PER_HOUR
#define ZBX_PROXY_LASTACCESS_UPDATE_FREQUENCY 5
-extern char *CONFIG_LOG_TYPE_STR;
-extern int CONFIG_LOG_TYPE;
-extern char *CONFIG_LOG_FILE;
-extern int CONFIG_LOG_FILE_SIZE;
extern int CONFIG_TIMEOUT;
struct cfg_line
diff --git a/include/log.h b/include/log.h
index 24d233ac949..d9e509611e7 100644
--- a/include/log.h
+++ b/include/log.h
@@ -43,6 +43,15 @@
#define LOG_ENTRY_INTERVAL_DELAY 60 /* seconds */
extern int zbx_log_level;
+
+typedef struct
+{
+ char *log_file_name;
+ char *log_type_str;
+ int log_type;
+ int log_file_size;
+} zbx_config_log_t;
+
#define ZBX_CHECK_LOG_LEVEL(level) \
((LOG_LEVEL_INFORMATION != (level) && \
((level) > zbx_log_level || LOG_LEVEL_EMPTY == (level))) ? FAIL : SUCCEED)
@@ -61,9 +70,9 @@ extern int zbx_log_level;
# define zabbix_log __zbx_zabbix_log
#endif
-int zabbix_open_log(int type, int level, const char *filename, char **error);
-void __zbx_zabbix_log(int level, const char *fmt, ...) __zbx_attr_format_printf(2, 3);
-void zabbix_close_log(void);
+int zabbix_open_log(const zbx_config_log_t *log_file_cfg, int level, char **error);
+void __zbx_zabbix_log(int level, const char *fmt, ...) __zbx_attr_format_printf(2, 3);
+void zabbix_close_log(void);
#ifndef _WINDOWS
int zabbix_increase_log_level(void);
@@ -83,7 +92,7 @@ int zbx_redirect_stdio(const char *filename);
void zbx_handle_log(void);
int zbx_get_log_type(const char *logtype);
-int zbx_validate_log_parameters(ZBX_TASK_EX *task);
+int zbx_validate_log_parameters(ZBX_TASK_EX *task, const zbx_config_log_t *log_file_cfg);
void zbx_strlog_alloc(int level, char **out, size_t *out_alloc, size_t *out_offset, const char *format,
...) __zbx_attr_format_printf(5, 6);
diff --git a/include/zbxnix.h b/include/zbxnix.h
index eae8b6af05e..e66c4b6415b 100644
--- a/include/zbxnix.h
+++ b/include/zbxnix.h
@@ -46,7 +46,8 @@ int ZBX_EXIT_STATUS(void);
typedef const char* (*zbx_get_pid_file_pathname_f)(void);
int zbx_daemon_start(int allow_root, const char *user, unsigned int flags,
- zbx_get_pid_file_pathname_f get_pid_file_cb, zbx_on_exit_t zbx_on_exit_cb_arg);
+ zbx_get_pid_file_pathname_f get_pid_file_cb, zbx_on_exit_t zbx_on_exit_cb_arg, int config_log_type,
+ const char *config_log_file);
void zbx_daemon_stop(void);
int zbx_sigusr_send(int flags, const char *pid_file_pathname);
diff --git a/src/libs/zbxconf/cfg.c b/src/libs/zbxconf/cfg.c
index 792da1d4982..95bdb6fc373 100644
--- a/src/libs/zbxconf/cfg.c
+++ b/src/libs/zbxconf/cfg.c
@@ -25,10 +25,6 @@
extern unsigned char program_type;
-char *CONFIG_LOG_TYPE_STR = NULL;
-int CONFIG_LOG_TYPE = LOG_TYPE_UNDEFINED;
-char *CONFIG_LOG_FILE = NULL;
-int CONFIG_LOG_FILE_SIZE = 1;
int CONFIG_TIMEOUT = 3;
static int __parse_cfg_file(const char *cfg_file, struct cfg_line *cfg, int level, int optional, int strict,
diff --git a/src/libs/zbxlog/log.c b/src/libs/zbxlog/log.c
index 41f166b0998..6d917d4ecfc 100644
--- a/src/libs/zbxlog/log.c
+++ b/src/libs/zbxlog/log.c
@@ -36,6 +36,17 @@ static int log_type = LOG_TYPE_UNDEFINED;
static zbx_mutex_t log_access = ZBX_MUTEX_NULL;
int zbx_log_level = LOG_LEVEL_WARNING;
+static int config_log_file_size = -1; /* max log file size in MB */
+
+static int get_config_log_file_size(void)
+{
+ if (-1 != config_log_file_size)
+ return config_log_file_size;
+
+ THIS_SHOULD_NEVER_HAPPEN;
+ exit(EXIT_FAILURE);
+}
+
#ifdef _WINDOWS
# define LOCK_LOG zbx_mutex_lock(log_access)
# define UNLOCK_LOG zbx_mutex_unlock(log_access)
@@ -159,7 +170,7 @@ static void rotate_log(const char *filename)
new_size = buf.st_size;
- if (0 != CONFIG_LOG_FILE_SIZE && (zbx_uint64_t)CONFIG_LOG_FILE_SIZE * ZBX_MEBIBYTE < new_size)
+ if (0 != get_config_log_file_size() && (zbx_uint64_t)get_config_log_file_size() * ZBX_MEBIBYTE < new_size)
{
char filename_old[MAX_STRING_LEN];
@@ -291,10 +302,14 @@ void zbx_handle_log(void)
UNLOCK_LOG;
}
-int zabbix_open_log(int type, int level, const char *filename, char **error)
+int zabbix_open_log(const zbx_config_log_t *log_file_cfg, int level, char **error)
{
+ const char *filename = log_file_cfg->log_file_name;
+ int type = log_file_cfg->log_type;
+
log_type = type;
zbx_log_level = level;
+ config_log_file_size = log_file_cfg->log_file_size;
if (LOG_TYPE_SYSTEM == type)
{
@@ -323,7 +338,8 @@ int zabbix_open_log(int type, int level, const char *filename, char **error)
if (NULL == (log_file = fopen(filename, "a+")))
{
- *error = zbx_dsprintf(*error, "unable to open log file [%s]: %s", filename, zbx_strerror(errno));
+ *error = zbx_dsprintf(*error, "unable to open log file [%s]: %s", filename,
+ zbx_strerror(errno));
return FAIL;
}
@@ -387,7 +403,7 @@ void __zbx_zabbix_log(int level, const char *fmt, ...)
LOCK_LOG;
- if (0 != CONFIG_LOG_FILE_SIZE)
+ if (0 != get_config_log_file_size())
rotate_log(log_filename);
if (NULL != (log_file = fopen(log_filename, "a+")))
@@ -577,15 +593,16 @@ int zbx_get_log_type(const char *logtype)
return LOG_TYPE_UNDEFINED;
}
-int zbx_validate_log_parameters(ZBX_TASK_EX *task)
+int zbx_validate_log_parameters(ZBX_TASK_EX *task, const zbx_config_log_t *log_file_cfg)
{
- if (LOG_TYPE_UNDEFINED == CONFIG_LOG_TYPE)
+ if (LOG_TYPE_UNDEFINED == log_file_cfg->log_type)
{
- zabbix_log(LOG_LEVEL_CRIT, "invalid \"LogType\" configuration parameter: '%s'", CONFIG_LOG_TYPE_STR);
+ zabbix_log(LOG_LEVEL_CRIT, "invalid \"LogType\" configuration parameter: '%s'",
+ log_file_cfg->log_type_str);
return FAIL;
}
- if (LOG_TYPE_CONSOLE == CONFIG_LOG_TYPE && 0 == (task->flags & ZBX_TASK_FLAG_FOREGROUND) &&
+ if (LOG_TYPE_CONSOLE == log_file_cfg->log_type && 0 == (task->flags & ZBX_TASK_FLAG_FOREGROUND) &&
ZBX_TASK_START == task->task)
{
zabbix_log(LOG_LEVEL_CRIT, "\"LogType\" \"console\" parameter can only be used with the"
@@ -593,7 +610,8 @@ int zbx_validate_log_parameters(ZBX_TASK_EX *task)
return FAIL;
}
- if (LOG_TYPE_FILE == CONFIG_LOG_TYPE && (NULL == CONFIG_LOG_FILE || '\0' == *CONFIG_LOG_FILE))
+ if (LOG_TYPE_FILE == log_file_cfg->log_type && (NULL == log_file_cfg->log_file_name || '\0' ==
+ *log_file_cfg->log_file_name))
{
zabbix_log(LOG_LEVEL_CRIT, "\"LogType\" \"file\" parameter requires \"LogFile\" parameter to be set");
return FAIL;
diff --git a/src/libs/zbxnix/daemon.c b/src/libs/zbxnix/daemon.c
index 3cd11018e0a..740ba4f6f5d 100644
--- a/src/libs/zbxnix/daemon.c
+++ b/src/libs/zbxnix/daemon.c
@@ -324,12 +324,15 @@ static void set_daemon_signal_handlers(void)
* name of PID file *
* zbx_on_exit_cb_arg - callback function called when terminating *
* signal handler *
+ * config_log_type - [IN] *
+ * config_log_file - [IN] *
* *
* Comments: it doesn't allow running under 'root' if allow_root is zero *
* *
******************************************************************************/
int zbx_daemon_start(int allow_root, const char *user, unsigned int flags,
- zbx_get_pid_file_pathname_f get_pid_file_cb, zbx_on_exit_t zbx_on_exit_cb_arg)
+ zbx_get_pid_file_pathname_f get_pid_file_cb, zbx_on_exit_t zbx_on_exit_cb_arg, int config_log_type,
+ const char *config_log_file)
{
struct passwd *pwd;
@@ -423,7 +426,7 @@ int zbx_daemon_start(int allow_root, const char *user, unsigned int flags,
if (-1 == chdir("/")) /* this is to eliminate warning: ignoring return value of chdir */
assert(0);
- if (FAIL == zbx_redirect_stdio(LOG_TYPE_FILE == CONFIG_LOG_TYPE ? CONFIG_LOG_FILE : NULL))
+ if (FAIL == zbx_redirect_stdio(LOG_TYPE_FILE == config_log_type ? config_log_file : NULL))
exit(EXIT_FAILURE);
}
diff --git a/src/zabbix_agent/zabbix_agentd.c b/src/zabbix_agent/zabbix_agentd.c
index 8551c8a8136..59a5446b826 100644
--- a/src/zabbix_agent/zabbix_agentd.c
+++ b/src/zabbix_agent/zabbix_agentd.c
@@ -290,6 +290,8 @@ int CONFIG_TRIGGERHOUSEKEEPER_FORKS = 0;
static char *config_file = NULL;
static int config_allow_root = 0;
+static zbx_config_log_t log_file_cfg = {NULL, NULL, LOG_TYPE_UNDEFINED, 1};
+
char *opt = NULL;
#ifdef _WINDOWS
@@ -605,8 +607,8 @@ static void set_defaults(void)
if (NULL == CONFIG_PID_FILE)
CONFIG_PID_FILE = (char *)"/tmp/zabbix_agentd.pid";
#endif
- if (NULL == CONFIG_LOG_TYPE_STR)
- CONFIG_LOG_TYPE_STR = zbx_strdup(CONFIG_LOG_TYPE_STR, ZBX_OPTION_LOGTYPE_FILE);
+ if (NULL == log_file_cfg.log_type_str)
+ log_file_cfg.log_type_str = zbx_strdup(log_file_cfg.log_type_str, ZBX_OPTION_LOGTYPE_FILE);
}
/******************************************************************************
@@ -682,7 +684,7 @@ static void zbx_validate_config(ZBX_TASK_EX *task)
err = 1;
}
- if (SUCCEED != zbx_validate_log_parameters(task))
+ if (SUCCEED != zbx_validate_log_parameters(task, &log_file_cfg))
err = 1;
#if !(defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL))
@@ -855,11 +857,11 @@ static void zbx_load_config(int requirement, ZBX_TASK_EX *task)
{"PidFile", &CONFIG_PID_FILE, TYPE_STRING,
PARM_OPT, 0, 0},
#endif
- {"LogType", &CONFIG_LOG_TYPE_STR, TYPE_STRING,
+ {"LogType", &log_file_cfg.log_type_str, TYPE_STRING,
PARM_OPT, 0, 0},
- {"LogFile", &CONFIG_LOG_FILE, TYPE_STRING,
+ {"LogFile", &log_file_cfg.log_file_name, TYPE_STRING,
PARM_OPT, 0, 0},
- {"LogFileSize", &CONFIG_LOG_FILE_SIZE, TYPE_INT,
+ {"LogFileSize", &log_file_cfg.log_file_size, TYPE_INT,
PARM_OPT, 0, 1024},
{"Timeout", &CONFIG_TIMEOUT, TYPE_INT,
PARM_OPT, 1, 30},
@@ -968,7 +970,7 @@ static void zbx_load_config(int requirement, ZBX_TASK_EX *task)
set_defaults();
- CONFIG_LOG_TYPE = zbx_get_log_type(CONFIG_LOG_TYPE_STR);
+ log_file_cfg.log_type = zbx_get_log_type(log_file_cfg.log_type_str);
zbx_vector_str_create(&hostnames);
parse_hostnames(CONFIG_HOSTNAMES, &hostnames);
@@ -1104,7 +1106,7 @@ int MAIN_ZABBIX_ENTRY(int flags)
exit(EXIT_FAILURE);
}
#endif
- if (SUCCEED != zabbix_open_log(CONFIG_LOG_TYPE, CONFIG_LOG_LEVEL, CONFIG_LOG_FILE, &error))
+ if (SUCCEED != zabbix_open_log(&log_file_cfg, CONFIG_LOG_LEVEL, &error))
{
zbx_error("cannot open log: %s", error);
zbx_free(error);
@@ -1504,7 +1506,8 @@ int main(int argc, char **argv)
#if defined(ZABBIX_SERVICE)
zbx_service_start(t.flags);
#elif defined(ZABBIX_DAEMON)
- zbx_daemon_start(config_allow_root, CONFIG_USER, t.flags, get_pid_file_path, zbx_on_exit);
+ zbx_daemon_start(config_allow_root, CONFIG_USER, t.flags, get_pid_file_path, zbx_on_exit,
+ log_file_cfg.log_type, log_file_cfg.log_file_name);
#endif
exit(EXIT_SUCCESS);
}
diff --git a/src/zabbix_js/zabbix_js.c b/src/zabbix_js/zabbix_js.c
index 01b618c6030..06d1bbea1b9 100644
--- a/src/zabbix_js/zabbix_js.c
+++ b/src/zabbix_js/zabbix_js.c
@@ -119,15 +119,16 @@ static char *read_file(const char *filename, char **error)
int main(int argc, char **argv)
{
- int ret = FAIL, loglevel = LOG_LEVEL_WARNING, timeout = 0;
- char *script_file = NULL, *input_file = NULL, *param = NULL, ch, *script = NULL, *error = NULL,
- *result = NULL, script_error[MAX_STRING_LEN];
+ int ret = FAIL, loglevel = LOG_LEVEL_WARNING, timeout = 0;
+ char *script_file = NULL, *input_file = NULL, *param = NULL, ch, *script = NULL,
+ *error = NULL, *result = NULL, script_error[MAX_STRING_LEN];
+ zbx_config_log_t log_file_cfg = {NULL, NULL, LOG_TYPE_UNDEFINED, 0};
/* see description of 'optarg' in 'man 3 getopt' */
- char *zbx_optarg = NULL;
+ char *zbx_optarg = NULL;
/* see description of 'optind' in 'man 3 getopt' */
- int zbx_optind = 0;
+ int zbx_optind = 0;
progname = get_program_name(argv[0]);
@@ -175,7 +176,7 @@ int main(int argc, char **argv)
goto clean;
}
- if (SUCCEED != zabbix_open_log(LOG_TYPE_UNDEFINED, loglevel, NULL, &error))
+ if (SUCCEED != zabbix_open_log(&log_file_cfg, loglevel, &error))
{
zbx_error("cannot open log: %s", error);
goto clean;
diff --git a/src/zabbix_proxy/proxy.c b/src/zabbix_proxy/proxy.c
index c0674d7c1c0..d4e990b8a01 100644
--- a/src/zabbix_proxy/proxy.c
+++ b/src/zabbix_proxy/proxy.c
@@ -298,6 +298,8 @@ int CONFIG_DOUBLE_PRECISION = ZBX_DB_DBL_PRECISION_ENABLED;
static char *config_file = NULL;
static int config_allow_root = 0;
+static zbx_config_log_t log_file_cfg = {NULL, NULL, LOG_TYPE_UNDEFINED, 1};
+
zbx_vector_ptr_t zbx_addrs;
int get_process_info_by_thread(int local_server_num, unsigned char *local_process_type, int *local_process_num);
@@ -503,8 +505,8 @@ static void zbx_set_defaults(void)
program_type = ZBX_PROGRAM_TYPE_PROXY_PASSIVE;
}
- if (NULL == CONFIG_LOG_TYPE_STR)
- CONFIG_LOG_TYPE_STR = zbx_strdup(CONFIG_LOG_TYPE_STR, ZBX_OPTION_LOGTYPE_FILE);
+ if (NULL == log_file_cfg.log_type_str)
+ log_file_cfg.log_type_str = zbx_strdup(log_file_cfg.log_type_str, ZBX_OPTION_LOGTYPE_FILE);
if (NULL == CONFIG_SOCKET_PATH)
CONFIG_SOCKET_PATH = zbx_strdup(CONFIG_SOCKET_PATH, "/tmp");
@@ -610,7 +612,7 @@ static void zbx_validate_config(ZBX_TASK_EX *task)
/* because they have non-zero default values */
#endif
- if (SUCCEED != zbx_validate_log_parameters(task))
+ if (SUCCEED != zbx_validate_log_parameters(task, &log_file_cfg))
err = 1;
#if !(defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL))
@@ -779,11 +781,11 @@ static void zbx_load_config(ZBX_TASK_EX *task)
PARM_OPT, 0, 5},
{"PidFile", &CONFIG_PID_FILE, TYPE_STRING,
PARM_OPT, 0, 0},
- {"LogType", &CONFIG_LOG_TYPE_STR, TYPE_STRING,
+ {"LogType", &log_file_cfg.log_type_str, TYPE_STRING,
PARM_OPT, 0, 0},
- {"LogFile", &CONFIG_LOG_FILE, TYPE_STRING,
+ {"LogFile", &log_file_cfg.log_file_name, TYPE_STRING,
PARM_OPT, 0, 0},
- {"LogFileSize", &CONFIG_LOG_FILE_SIZE, TYPE_INT,
+ {"LogFileSize", &log_file_cfg.log_file_size, TYPE_INT,
PARM_OPT, 0, 1024},
{"ExternalScripts", &CONFIG_EXTERNALSCRIPTS, TYPE_STRING,
PARM_OPT, 0, 0},
@@ -911,7 +913,7 @@ static void zbx_load_config(ZBX_TASK_EX *task)
zbx_set_defaults();
- CONFIG_LOG_TYPE = zbx_get_log_type(CONFIG_LOG_TYPE_STR);
+ log_file_cfg.log_type = zbx_get_log_type(log_file_cfg.log_type_str);
zbx_validate_config(task);
@@ -1118,7 +1120,8 @@ int main(int argc, char **argv)
exit(SUCCEED == ret ? EXIT_SUCCESS : EXIT_FAILURE);
}
- return zbx_daemon_start(config_allow_root, CONFIG_USER, t.flags, get_pid_file_path, zbx_on_exit);
+ return zbx_daemon_start(config_allow_root, CONFIG_USER, t.flags, get_pid_file_path, zbx_on_exit,
+ log_file_cfg.log_type, log_file_cfg.log_file_name);
}
static void zbx_check_db(void)
@@ -1231,7 +1234,7 @@ int MAIN_ZABBIX_ENTRY(int flags)
exit(EXIT_FAILURE);
}
- if (SUCCEED != zabbix_open_log(CONFIG_LOG_TYPE, CONFIG_LOG_LEVEL, CONFIG_LOG_FILE, &error))
+ if (SUCCEED != zabbix_open_log(&log_file_cfg, CONFIG_LOG_LEVEL, &error))
{
zbx_error("cannot open log:%s", error);
zbx_free(error);
diff --git a/src/zabbix_sender/zabbix_sender.c b/src/zabbix_sender/zabbix_sender.c
index 123e79d1c67..269a940f95a 100644
--- a/src/zabbix_sender/zabbix_sender.c
+++ b/src/zabbix_sender/zabbix_sender.c
@@ -1497,6 +1497,7 @@ int main(int argc, char **argv)
char *error = NULL;
int total_count = 0, succeed_count = 0, ret = FAIL, timestamp, ns;
zbx_thread_sendval_args *sendval_args = NULL;
+ zbx_config_log_t log_file_cfg = {NULL, NULL, LOG_TYPE_UNDEFINED, 0};
zbx_config_tls = zbx_config_tls_new();
@@ -1514,7 +1515,7 @@ int main(int argc, char **argv)
exit(EXIT_FAILURE);
}
#endif
- if (SUCCEED != zabbix_open_log(LOG_TYPE_UNDEFINED, CONFIG_LOG_LEVEL, NULL, &error))
+ if (SUCCEED != zabbix_open_log(&log_file_cfg, CONFIG_LOG_LEVEL, &error))
{
zbx_error("cannot open log: %s", error);
zbx_free(error);
diff --git a/src/zabbix_server/server.c b/src/zabbix_server/server.c
index 5cd62e96067..4aa10ffa80f 100644
--- a/src/zabbix_server/server.c
+++ b/src/zabbix_server/server.c
@@ -338,6 +338,8 @@ int CONFIG_SERVICEMAN_SYNC_FREQUENCY = 60;
static char *config_file = NULL;
static int config_allow_root = 0;
+static zbx_config_log_t log_file_cfg = {NULL, NULL, LOG_TYPE_UNDEFINED, 1};
+
struct zbx_db_version_info_t db_version_info;
int get_process_info_by_thread(int local_server_num, unsigned char *local_process_type, int *local_process_num);
@@ -576,8 +578,8 @@ static void zbx_set_defaults(void)
CONFIG_MAX_HOUSEKEEPER_DELETE = 0;
#endif
- if (NULL == CONFIG_LOG_TYPE_STR)
- CONFIG_LOG_TYPE_STR = zbx_strdup(CONFIG_LOG_TYPE_STR, ZBX_OPTION_LOGTYPE_FILE);
+ if (NULL == log_file_cfg.log_type_str)
+ log_file_cfg.log_type_str = zbx_strdup(log_file_cfg.log_type_str, ZBX_OPTION_LOGTYPE_FILE);
if (NULL == CONFIG_SOCKET_PATH)
CONFIG_SOCKET_PATH = zbx_strdup(CONFIG_SOCKET_PATH, "/tmp");
@@ -686,7 +688,7 @@ static void zbx_validate_config(ZBX_TASK_EX *task)
/* because they have non-zero default values */
#endif
- if (SUCCEED != zbx_validate_log_parameters(task))
+ if (SUCCEED != zbx_validate_log_parameters(task, &log_file_cfg))
err = 1;
#if !(defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL))
@@ -815,11 +817,11 @@ static void zbx_load_config(ZBX_TASK_EX *task)
PARM_OPT, 0, 5},
{"PidFile", &CONFIG_PID_FILE, TYPE_STRING,
PARM_OPT, 0, 0},
- {"LogType", &CONFIG_LOG_TYPE_STR, TYPE_STRING,
+ {"LogType", &log_file_cfg.log_type_str, TYPE_STRING,
PARM_OPT, 0, 0},
- {"LogFile", &CONFIG_LOG_FILE, TYPE_STRING,
+ {"LogFile", &log_file_cfg.log_file_name, TYPE_STRING,
PARM_OPT, 0, 0},
- {"LogFileSize", &CONFIG_LOG_FILE_SIZE, TYPE_INT,
+ {"LogFileSize", &log_file_cfg.log_file_size, TYPE_INT,
PARM_OPT, 0, 1024},
{"AlertScriptsPath", &CONFIG_ALERT_SCRIPTS_PATH, TYPE_STRING,
PARM_OPT, 0, 0},
@@ -967,7 +969,7 @@ static void zbx_load_config(ZBX_TASK_EX *task)
parse_cfg_file(config_file, cfg, ZBX_CFG_FILE_REQUIRED, ZBX_CFG_STRICT, ZBX_CFG_EXIT_FAILURE);
zbx_set_defaults();
- CONFIG_LOG_TYPE = zbx_get_log_type(CONFIG_LOG_TYPE_STR);
+ log_file_cfg.log_type = zbx_get_log_type(log_file_cfg.log_type_str);
zbx_validate_config(task);
#if defined(HAVE_MYSQL) || defined(HAVE_POSTGRESQL)
@@ -1176,7 +1178,8 @@ int main(int argc, char **argv)
exit(SUCCEED == ret ? EXIT_SUCCESS : EXIT_FAILURE);
}
- return zbx_daemon_start(config_allow_root, CONFIG_USER, t.flags, get_pid_file_path, zbx_on_exit);
+ return zbx_daemon_start(config_allow_root, CONFIG_USER, t.flags, get_pid_file_path, zbx_on_exit,
+ log_file_cfg.log_type, log_file_cfg.log_file_name);
}
static void zbx_check_db(void)
@@ -1547,7 +1550,7 @@ static int server_restart_logger(char **error)
if (SUCCEED != zbx_locks_create(error))
return FAIL;
- if (SUCCEED != zabbix_open_log(CONFIG_LOG_TYPE, CONFIG_LOG_LEVEL, CONFIG_LOG_FILE, error))
+ if (SUCCEED != zabbix_open_log(&log_file_cfg, CONFIG_LOG_LEVEL, error))
return FAIL;
return SUCCEED;
@@ -1667,7 +1670,7 @@ int MAIN_ZABBIX_ENTRY(int flags)
exit(EXIT_FAILURE);
}
- if (SUCCEED != zabbix_open_log(CONFIG_LOG_TYPE, CONFIG_LOG_LEVEL, CONFIG_LOG_FILE, &error))
+ if (SUCCEED != zabbix_open_log(&log_file_cfg, CONFIG_LOG_LEVEL, &error))
{
zbx_error("cannot open log: %s", error);
zbx_free(error);
diff --git a/tests/libs/zbxcommon/Makefile.am b/tests/libs/zbxcommon/Makefile.am
index eedff6448a9..ad72b2519ad 100644
--- a/tests/libs/zbxcommon/Makefile.am
+++ b/tests/libs/zbxcommon/Makefile.am
@@ -39,6 +39,7 @@ COMMON_SRC_FILES = \
../../zbxmocktest.h
COMMON_LIB_FILES = \
+ $(top_srcdir)/tests/libzbxmockdata.a \
$(top_srcdir)/src/zabbix_server/alerter/libzbxalerter.a \
$(top_srcdir)/src/zabbix_server/dbsyncer/libzbxdbsyncer.a \
$(top_srcdir)/src/zabbix_server/dbconfig/libzbxdbconfig.a \
diff --git a/tests/libs/zbxtime/Makefile.am b/tests/libs/zbxtime/Makefile.am
index 4cd52c8082b..68226b613b3 100644
--- a/tests/libs/zbxtime/Makefile.am
+++ b/tests/libs/zbxtime/Makefile.am
@@ -10,6 +10,7 @@ COMMON_SRC_FILES = \
../../zbxmocktest.h
COMMON_LIB_FILES = \
+ $(top_srcdir)/tests/libzbxmockdata.a \
$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
$(top_srcdir)/src/libs/zbxnix/libzbxnix.a \
$(top_srcdir)/src/libs/zbxlog/libzbxlog.a \
diff --git a/tests/libs/zbxtrends/Makefile.am b/tests/libs/zbxtrends/Makefile.am
index 064de208364..ae2b1c75245 100644
--- a/tests/libs/zbxtrends/Makefile.am
+++ b/tests/libs/zbxtrends/Makefile.am
@@ -11,6 +11,7 @@ COMMON_SRC_FILES = \
../../zbxmocktest.h
COMMON_LIB_FILES = \
+ $(top_srcdir)/tests/libzbxmockdata.a \
$(top_srcdir)/src/libs/zbxtrends/libzbxtrends.a \
$(top_srcdir)/src/libs/zbxregexp/libzbxregexp.a \
$(top_srcdir)/src/libs/zbxshmem/libzbxshmem.a \