log: add lxc_log_get_fd()

parent ef1a597f
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
int lxc_log_fd = -EBADF; int lxc_log_fd = -EBADF;
static bool wants_syslog = false; static bool wants_syslog = false;
static int lxc_quiet_specified; static int lxc_quiet_specified;
int lxc_log_use_global_fd; bool lxc_log_use_global_fd = false;
static int lxc_loglevel_specified; static int lxc_loglevel_specified;
static char log_prefix[LXC_LOG_PREFIX_SIZE] = "lxc"; static char log_prefix[LXC_LOG_PREFIX_SIZE] = "lxc";
...@@ -92,6 +92,20 @@ static const char *lxc_log_get_container_name(void) ...@@ -92,6 +92,20 @@ static const char *lxc_log_get_container_name(void)
return log_vmname; return log_vmname;
} }
int lxc_log_get_fd(void)
{
int fd_log = -EBADF;
#ifndef NO_LXC_CONF
if (current_config && !lxc_log_use_global_fd)
fd_log = current_config->logfd;
#endif
if (fd_log < 0)
fd_log = lxc_log_fd;
return fd_log;
}
static char *lxc_log_get_va_msg(struct lxc_log_event *event) static char *lxc_log_get_va_msg(struct lxc_log_event *event)
{ {
__do_free char *msg = NULL; __do_free char *msg = NULL;
...@@ -659,7 +673,7 @@ int lxc_log_init(struct lxc_log *log) ...@@ -659,7 +673,7 @@ int lxc_log_init(struct lxc_log *log)
if (ret < 0) if (ret < 0)
return log_error_errno(-1, errno, "Failed to enable logfile"); return log_error_errno(-1, errno, "Failed to enable logfile");
lxc_log_use_global_fd = 1; lxc_log_use_global_fd = true;
} else { } else {
/* if no name was specified, there nothing to do */ /* if no name was specified, there nothing to do */
if (!log->name) if (!log->name)
......
...@@ -85,7 +85,7 @@ struct lxc_log_category { ...@@ -85,7 +85,7 @@ struct lxc_log_category {
}; };
#ifndef NO_LXC_CONF #ifndef NO_LXC_CONF
extern int lxc_log_use_global_fd; extern bool lxc_log_use_global_fd;
#endif #endif
/* /*
...@@ -574,5 +574,6 @@ __hidden extern const char *lxc_log_get_file(void); ...@@ -574,5 +574,6 @@ __hidden extern const char *lxc_log_get_file(void);
__hidden extern void lxc_log_set_prefix(const char *prefix); __hidden extern void lxc_log_set_prefix(const char *prefix);
__hidden extern const char *lxc_log_get_prefix(void); __hidden extern const char *lxc_log_get_prefix(void);
__hidden extern void lxc_log_options_no_override(void); __hidden extern void lxc_log_options_no_override(void);
__hidden extern int lxc_log_get_fd(void);
#endif /* __LXC_LOG_H */ #endif /* __LXC_LOG_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment