Commit e6cde741 by Stéphane Graber

Revert "use a default per-container logfile"

The logfile changes broke lxc-info and possibly more command line tools. Revert for now until we get those issues addressed. This reverts commit 74476cf1.
parent b02bbfac
...@@ -157,13 +157,6 @@ AC_ARG_WITH([rootfs-path], ...@@ -157,13 +157,6 @@ AC_ARG_WITH([rootfs-path],
[lxc rootfs mount point] [lxc rootfs mount point]
)], [], [with_rootfs_path=['${libdir}/lxc/rootfs']]) )], [], [with_rootfs_path=['${libdir}/lxc/rootfs']])
# Container log path. By default, use $lxcpath.
AC_ARG_WITH([log-path],
[AC_HELP_STRING(
[--with-log-path=dir],
[per container log path]
)], [], [with_log_path=['${with_config_path}']])
# Expand some useful variables # Expand some useful variables
AS_AC_EXPAND(PREFIX, "$prefix") AS_AC_EXPAND(PREFIX, "$prefix")
AS_AC_EXPAND(LIBDIR, "$libdir") AS_AC_EXPAND(LIBDIR, "$libdir")
...@@ -180,7 +173,6 @@ AS_AC_EXPAND(LXCPATH, "$with_config_path") ...@@ -180,7 +173,6 @@ AS_AC_EXPAND(LXCPATH, "$with_config_path")
AS_AC_EXPAND(LXCROOTFSMOUNT, "$with_rootfs_path") AS_AC_EXPAND(LXCROOTFSMOUNT, "$with_rootfs_path")
AS_AC_EXPAND(LXCTEMPLATEDIR, "$datadir/lxc/templates") AS_AC_EXPAND(LXCTEMPLATEDIR, "$datadir/lxc/templates")
AS_AC_EXPAND(LXCINITDIR, "$libexecdir") AS_AC_EXPAND(LXCINITDIR, "$libexecdir")
AS_AC_EXPAND(LOGPATH, "$with_log_path")
# Check for some standard kernel headers # Check for some standard kernel headers
AC_CHECK_HEADERS([linux/unistd.h linux/netlink.h linux/genetlink.h], AC_CHECK_HEADERS([linux/unistd.h linux/netlink.h linux/genetlink.h],
......
...@@ -89,8 +89,7 @@ AM_CFLAGS=-I$(top_srcdir)/src \ ...@@ -89,8 +89,7 @@ AM_CFLAGS=-I$(top_srcdir)/src \
-DLXCROOTFSMOUNT=\"$(LXCROOTFSMOUNT)\" \ -DLXCROOTFSMOUNT=\"$(LXCROOTFSMOUNT)\" \
-DLXCPATH=\"$(LXCPATH)\" \ -DLXCPATH=\"$(LXCPATH)\" \
-DLXCINITDIR=\"$(LXCINITDIR)\" \ -DLXCINITDIR=\"$(LXCINITDIR)\" \
-DLXCTEMPLATEDIR=\"$(LXCTEMPLATEDIR)\" \ -DLXCTEMPLATEDIR=\"$(LXCTEMPLATEDIR)\"
-DLOGPATH=\"$(LOGPATH)\"
if ENABLE_APPARMOR if ENABLE_APPARMOR
AM_CFLAGS += -DHAVE_APPARMOR AM_CFLAGS += -DHAVE_APPARMOR
......
...@@ -927,6 +927,11 @@ static int config_aa_profile(const char *key, const char *value, ...@@ -927,6 +927,11 @@ static int config_aa_profile(const char *key, const char *value,
static int config_logfile(const char *key, const char *value, static int config_logfile(const char *key, const char *value,
struct lxc_conf *lxc_conf) struct lxc_conf *lxc_conf)
{ {
if (lxc_log_get_file()) {
DEBUG("Log file already specified - ignoring new value");
return 0;
}
return lxc_log_set_file(value); return lxc_log_set_file(value);
} }
......
...@@ -42,8 +42,6 @@ ...@@ -42,8 +42,6 @@
int lxc_log_fd = -1; int lxc_log_fd = -1;
static char log_prefix[LXC_LOG_PREFIX_SIZE] = "lxc"; static char log_prefix[LXC_LOG_PREFIX_SIZE] = "lxc";
static int lxc_loglevel_specified = 0; static int lxc_loglevel_specified = 0;
// if logfile was specifed on command line, it won't be overridden by lxc.logfile
static int lxc_log_specified = 0;
lxc_log_define(lxc_log, lxc); lxc_log_define(lxc_log, lxc);
...@@ -150,42 +148,11 @@ static int log_open(const char *name) ...@@ -150,42 +148,11 @@ static int log_open(const char *name)
return newfd; return newfd;
} }
static char *build_log_path(const char *name)
{
char *p;
int len, ret;
/* '$logpath' + '/' + '$name' + '/' + '$name' + '.log' + '\0' */
len = sizeof(LOGPATH) + 2*sizeof(name) + 7;
p = malloc(len);
if (!p)
return p;
ret = snprintf(p, len, "%s/%s", LOGPATH, name);
if (ret < 0 || ret >= len) {
free(p);
return NULL;
}
ret = mkdir(p, 0755);
if (ret == -1 && errno != EEXIST) {
free(p);
return NULL;
}
ret = snprintf(p, len, "%s/%s/%s.log", LOGPATH, name, name);
if (ret < 0 || ret >= len) {
free(p);
return NULL;
}
return p;
}
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
extern int lxc_log_init(const char *name, const char *file, extern int lxc_log_init(const char *file, const char *priority,
const char *priority, const char *prefix, int quiet) const char *prefix, int quiet)
{ {
int lxc_priority = LXC_LOG_PRIORITY_ERROR; int lxc_priority = LXC_LOG_PRIORITY_ERROR;
int ret;
char *tmpfile = NULL;
int want_lxc_log_specified = 0;
if (lxc_log_fd != -1) if (lxc_log_fd != -1)
return 0; return 0;
...@@ -209,30 +176,10 @@ extern int lxc_log_init(const char *name, const char *file, ...@@ -209,30 +176,10 @@ extern int lxc_log_init(const char *name, const char *file,
if (prefix) if (prefix)
lxc_log_setprefix(prefix); lxc_log_setprefix(prefix);
if (file && strcmp(file, "none") == 0) { if (file)
want_lxc_log_specified = 1; return lxc_log_set_file(file);
return 0;
}
if (!file) {
tmpfile = build_log_path(name);
if (!tmpfile) {
ERROR("could not build log path");
return -1;
}
} else {
want_lxc_log_specified = 1;
}
ret = lxc_log_set_file(tmpfile ? tmpfile : file);
if (want_lxc_log_specified)
lxc_log_specified = 1;
if (tmpfile)
free(tmpfile);
return ret; return 0;
} }
/* /*
...@@ -255,23 +202,16 @@ extern int lxc_log_set_level(int level) ...@@ -255,23 +202,16 @@ extern int lxc_log_set_level(int level)
char *log_fname; // default to NULL, set in lxc_log_set_file. char *log_fname; // default to NULL, set in lxc_log_set_file.
/* /*
* This can be called: * This is called when we read a lxc.logfile entry in a lxc.conf file. This
* 1. when a program calls lxc_log_init with no logfile parameter (in which * happens after processing command line arguments, which override the .conf
* case the default is used). In this case lxc.logfile can override this. * settings. So only set the logfile if previously unset.
* 2. when a program calls lxc_log_init with a logfile parameter. In this
* case we don't want lxc.logfile to override this.
* 3. When a lxc.logfile entry is found in config file.
*/ */
extern int lxc_log_set_file(const char *fname) extern int lxc_log_set_file(const char *fname)
{ {
if (lxc_log_specified) {
INFO("lxc.logfile overriden by command line");
return 0;
}
if (lxc_log_fd != -1) { if (lxc_log_fd != -1) {
// we are overriding the default. // this should've been caught at config_logfile.
close(lxc_log_fd); ERROR("Race in setting logfile?");
free(log_fname); return -1;
} }
lxc_log_fd = log_open(fname); lxc_log_fd = log_open(fname);
......
...@@ -287,8 +287,8 @@ extern struct lxc_log_category lxc_log_category_lxc; ...@@ -287,8 +287,8 @@ extern struct lxc_log_category lxc_log_category_lxc;
extern int lxc_log_fd; extern int lxc_log_fd;
extern int lxc_log_init(const char *name, const char *file, extern int lxc_log_init(const char *file, const char *priority,
const char *priority, const char *prefix, int quiet); const char *prefix, int quiet);
extern void lxc_log_setprefix(const char *a_prefix); extern void lxc_log_setprefix(const char *a_prefix);
extern int lxc_log_set_level(int level); extern int lxc_log_set_level(int level);
......
...@@ -139,7 +139,7 @@ int main(int argc, char *argv[]) ...@@ -139,7 +139,7 @@ int main(int argc, char *argv[])
if (ret) if (ret)
return ret; return ret;
ret = lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, ret = lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet); my_args.progname, my_args.quiet);
if (ret) if (ret)
return ret; return ret;
......
...@@ -68,7 +68,7 @@ int main(int argc, char *argv[]) ...@@ -68,7 +68,7 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
return -1; return -1;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return -1; return -1;
......
...@@ -115,7 +115,7 @@ int main(int argc, char *argv[]) ...@@ -115,7 +115,7 @@ int main(int argc, char *argv[])
if (ret) if (ret)
return ret; return ret;
ret = lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, ret = lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet); my_args.progname, my_args.quiet);
if (ret) if (ret)
return ret; return ret;
......
...@@ -187,7 +187,7 @@ int main(int argc, char *argv[]) ...@@ -187,7 +187,7 @@ int main(int argc, char *argv[])
if (err) if (err)
return -1; return -1;
err = lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, err = lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet); my_args.progname, my_args.quiet);
if (err) if (err)
return -1; return -1;
......
...@@ -99,7 +99,7 @@ int main(int argc, char *argv[]) ...@@ -99,7 +99,7 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
return -1; return -1;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return -1; return -1;
......
...@@ -54,7 +54,7 @@ int main(int argc, char *argv[]) ...@@ -54,7 +54,7 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
return -1; return -1;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return -1; return -1;
......
...@@ -79,7 +79,7 @@ int main(int argc, char *argv[]) ...@@ -79,7 +79,7 @@ int main(int argc, char *argv[])
if (ret) if (ret)
return 1; return 1;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return 1; return 1;
......
...@@ -79,7 +79,7 @@ int main(int argc, char *argv[]) ...@@ -79,7 +79,7 @@ int main(int argc, char *argv[])
if (lxc_caps_init()) if (lxc_caps_init())
exit(err); exit(err);
if (lxc_log_init(NULL, "none", 0, basename(argv[0]), quiet)) if (lxc_log_init(NULL, 0, basename(argv[0]), quiet))
exit(err); exit(err);
if (!argv[optind]) { if (!argv[optind]) {
......
...@@ -61,7 +61,7 @@ int main(int argc, char *argv[], char *envp[]) ...@@ -61,7 +61,7 @@ int main(int argc, char *argv[], char *envp[])
if (ret) if (ret)
return ret; return ret;
ret = lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, ret = lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet); my_args.progname, my_args.quiet);
if (ret) if (ret)
return ret; return ret;
......
...@@ -65,7 +65,7 @@ int main(int argc, char *argv[]) ...@@ -65,7 +65,7 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
return -1; return -1;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return -1; return -1;
......
...@@ -122,7 +122,7 @@ int main(int argc, char *argv[]) ...@@ -122,7 +122,7 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
return -1; return -1;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return -1; return -1;
......
...@@ -164,7 +164,7 @@ int main(int argc, char *argv[]) ...@@ -164,7 +164,7 @@ int main(int argc, char *argv[])
else else
args = my_args.argv; args = my_args.argv;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return err; return err;
......
...@@ -53,7 +53,7 @@ int main(int argc, char *argv[]) ...@@ -53,7 +53,7 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
return -1; return -1;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return -1; return -1;
......
...@@ -53,7 +53,7 @@ int main(int argc, char *argv[]) ...@@ -53,7 +53,7 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
return -1; return -1;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return -1; return -1;
......
...@@ -83,7 +83,7 @@ int main(int argc, char *argv[]) ...@@ -83,7 +83,7 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
return -1; return -1;
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority, if (lxc_log_init(my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet)) my_args.progname, my_args.quiet))
return -1; return -1;
......
...@@ -976,7 +976,7 @@ struct lxc_container *lxc_container_new(const char *name) ...@@ -976,7 +976,7 @@ struct lxc_container *lxc_container_new(const char *name)
c->set_cgroup_item = lxcapi_set_cgroup_item; c->set_cgroup_item = lxcapi_set_cgroup_item;
/* we'll allow the caller to update these later */ /* we'll allow the caller to update these later */
if (lxc_log_init(NULL, "none", NULL, "lxc_container", 0)) { if (lxc_log_init(NULL, NULL, "lxc_container", 0)) {
fprintf(stderr, "failed to open log\n"); fprintf(stderr, "failed to open log\n");
goto err; goto err;
} }
......
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