The default_log is not working at all. Simply the sanity check and
re-enable default log file so that it can be consistent with the
document.
Please note that i also removed following addition stuff, since we have
added this prefix if needed during parsing the FILENAME.
if (strncmp(monitor.log, "./", 2) != 0)
fix_filename(prefix, (const char **)&monitor.log);
Signed-off-by: Li Zhijian <[email protected]>
---
cxl/monitor.c | 41 +++++++++++++++++++++--------------------
1 file changed, 21 insertions(+), 20 deletions(-)
diff --git a/cxl/monitor.c b/cxl/monitor.c
index 842e54b186ab..139506aed85a 100644
--- a/cxl/monitor.c
+++ b/cxl/monitor.c
@@ -163,6 +163,7 @@ int cmd_monitor(int argc, const char **argv, struct cxl_ctx
*ctx)
};
const char *prefix ="./";
int rc = 0, i;
+ const char *log;
argc = parse_options_prefix(argc, argv, prefix, options, u, 0);
for (i = 0; i < argc; i++)
@@ -170,32 +171,32 @@ int cmd_monitor(int argc, const char **argv, struct
cxl_ctx *ctx)
if (argc)
usage_with_options(u, options);
- log_init(&monitor.ctx, "cxl/monitor", "CXL_MONITOR_LOG");
- monitor.ctx.log_fn = log_standard;
+ // sanity check
+ if (monitor.daemon && monitor.log && !strncmp(monitor.log, "./", 2)) {
+ error("standard or relative path for <file> will not work for
daemon mode\n");
+ return -EINVAL;
+ }
+
+ if (monitor.log)
+ log = monitor.log;
+ else
+ log = monitor.daemon ? default_log : "./standard";
+ log_init(&monitor.ctx, "cxl/monitor", "CXL_MONITOR_LOG");
if (monitor.verbose)
monitor.ctx.log_priority = LOG_DEBUG;
else
monitor.ctx.log_priority = LOG_INFO;
- if (monitor.log) {
- if (strncmp(monitor.log, "./", 2) != 0)
- fix_filename(prefix, (const char **)&monitor.log);
-
- if (strcmp(monitor.log, "./standard") == 0 && !monitor.daemon) {
- monitor.ctx.log_fn = log_standard;
- } else {
- const char *log = monitor.log;
-
- if (!monitor.log)
- log = default_log;
- monitor.ctx.log_file = fopen(log, "a+");
- if (!monitor.ctx.log_file) {
- rc = -errno;
- error("open %s failed: %d\n", monitor.log, rc);
- goto out;
- }
- monitor.ctx.log_fn = log_file;
+ if (strcmp(log, "./standard") == 0)
+ monitor.ctx.log_fn = log_standard;
+ else {
+ monitor.ctx.log_fn = log_file;
+ monitor.ctx.log_file = fopen(log, "a+");
+ if (!monitor.ctx.log_file) {
+ rc = -errno;
+ error("open %s failed: %d\n", log, rc);
+ goto out;
}
}
--
2.29.2