From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt0-x243.google.com (mail-qt0-x243.google.com [IPv6:2607:f8b0:400d:c0d::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0E4FC210DA7A9 for ; Tue, 7 Aug 2018 12:30:32 -0700 (PDT) Received: by mail-qt0-x243.google.com with SMTP id n6-v6so19267336qtl.4 for ; Tue, 07 Aug 2018 12:30:32 -0700 (PDT) Subject: Re: [ndctl PATCH 2/4] ndctl, monitor: set default log destination to syslog if "--daemon" is specified References: <20180807131756.23673-1-qi.fuli@jp.fujitsu.com> <20180807131756.23673-3-qi.fuli@jp.fujitsu.com> From: Masayoshi Mizuma Message-ID: <7aa147ac-9fa8-ace7-a782-6ba3cab88b20@gmail.com> Date: Tue, 7 Aug 2018 15:30:29 -0400 MIME-Version: 1.0 In-Reply-To: <20180807131756.23673-3-qi.fuli@jp.fujitsu.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: qi.fuli@jp.fujitsu.com, linux-nvdimm@lists.01.org List-ID: Hi Qi, On 08/07/2018 09:17 AM, QI Fuli wrote: > When running monitor as a daemon, if the log destination is "standard" or > a relative path for log file, the messages will not be able to be logged. > Sometimes, users may not notice that the default log destination is "standard" > when they start monitor daemon by systemctl, so they will lose messages. > This patch is used to fix the unfriendly interface. When running monitor as a > daemon, the default log destination will be changed to syslog. Also, the messages > will be forwarded to syslog if the log destination is a relative path for log file. > > Signed-off-by: QI Fuli > --- > Documentation/ndctl/ndctl-monitor.txt | 16 +++++++++++++++- > ndctl/monitor.c | 5 ++++- > ndctl/monitor.conf | 2 ++ > 3 files changed, 21 insertions(+), 2 deletions(-) > > diff --git a/Documentation/ndctl/ndctl-monitor.txt b/Documentation/ndctl/ndctl-monitor.txt > index 1cba9ea..9a8d76b 100644 > --- a/Documentation/ndctl/ndctl-monitor.txt > +++ b/Documentation/ndctl/ndctl-monitor.txt > @@ -67,7 +67,21 @@ OPTIONS > > -l :: > --log=:: > - Output notifications to , syslog or standard output. > + Send log messages to the specified destination. > ++ > +-- > +:: > + Send log messages to specified . When fopen() is not able > + to open , log messages will be forwarded to syslog. > +syslog:: > + Send messages to syslog. > +standard:: > + Send messages to standard output. > +-- > ++ > +The default log destination is 'syslog' if "--daemon" is specified, > +otherwise 'standard'. Note that standard and relative path for > +will not work if "--daemon" is specified. > > -c:: > --config-file=:: > diff --git a/ndctl/monitor.c b/ndctl/monitor.c > index bf1f1d3..2f3d751 100644 > --- a/ndctl/monitor.c > +++ b/ndctl/monitor.c > @@ -93,7 +93,8 @@ static void log_file(struct ndctl_ctx *ctx, int priority, const char *file, > f = fopen(monitor.log, "a+"); > if (!f) { > ndctl_set_log_fn(ctx, log_syslog); > - err(ctx, "open logfile %s failed\n", monitor.log); > + err(ctx, "open logfile %s failed, forward messages to syslog\n", > + monitor.log); > did_fail = 1; > notice(ctx, "%s\n", buf); > goto end; > @@ -644,6 +645,8 @@ int cmd_monitor(int argc, const char **argv, void *ctx) > } > > if (monitor.daemon) { Why don't you add './standard' check? Like as: if (strncmp(monitor.log, "./standard", 10) == 0) error("daemon doesn't work for 'standard' log option"); goto out; Thanks, Masa > + if (!monitor.log || strncmp(monitor.log, "./", 2) == 0) > + ndctl_set_log_fn((struct ndctl_ctx *)ctx, log_syslog); > if (daemon(0, 0) != 0) { > err((struct ndctl_ctx *)ctx, "daemon start failed\n"); > goto out; > diff --git a/ndctl/monitor.conf b/ndctl/monitor.conf > index 857aadf..934e2c0 100644 > --- a/ndctl/monitor.conf > +++ b/ndctl/monitor.conf > @@ -38,4 +38,6 @@ > # to standard output (log=standard) or to write into a special file (log=) > # by setting key "log". If this value is in conflict with the value of > # [--log=] option, this value will be ignored. > +# Note: Setting value to "standard" or relative path for will not work > +# when running moniotr as a daemon. > # log = /var/log/ndctl/monitor.log > _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm