On Thu, 2004-10-14 at 12:59 -0600, James Yonan wrote: > On Thu, 14 Oct 2004, Charles Duffy wrote: > > I'm using OpenVPN under a process supervision framework that (optionally) > > adds its own timestamps in the form YYYY-MM-DD_HH:MM:SS.xxxxx to the > > beginning of each line's output when sending said output to a logfile. I'm > > using this for all my other services, and would like to do it for OpenVPN > > too (so I can use cat and sort to see combined logs from any arbitrary set > > of services). However, when doing so, I get both OpenVPN's own timestamps > > and the framework's timestamps next to each other -- somewhat less than > > ideal. I don't see anything in the OpenVPN man page describing a way to > > disable these timestamps. Such an option would be useful, though. > > > > James, would you object to adding such an option? If you like, I'd be glad > > to try my hand at creating a patch for it, with semantics of your choice. > > I don't have any problem with this -- in fact the timestamp is already > removed for output to the system logger, so you can see how this is > currently done.
A proposed patch is attached.
diff -ru3 openvpn-2.0_beta11/error.c openvpn-2.0_beta11+suppression/error.c --- openvpn-2.0_beta11/error.c 2004-08-15 07:28:35.000000000 -0500 +++ openvpn-2.0_beta11+suppression/error.c 2004-10-15 10:50:43.000000000 -0500 @@ -72,6 +72,9 @@ /* Should messages be written to the syslog? */ static bool use_syslog; /* GLOBAL */ +/* Should timestamps be included on messages to stdout/stderr? */ +static bool suppress_timestamps; /* GLOBAL */ + /* The program name passed to syslog */ static char *pgmname_syslog; /* GLOBAL */ @@ -91,9 +94,16 @@ } void +set_suppress_timestamps (bool suppressed) +{ + suppress_timestamps = suppressed; +} + +void error_reset () { use_syslog = std_redir = false; + suppress_timestamps = false; x_debug_level = 1; mute_cutoff = 0; mute_count = 0; @@ -252,7 +262,7 @@ FILE *fp = msg_fp(); const bool show_usec = check_debug_level (DEBUG_LEVEL_USEC_TIME - 1); - if (flags & M_NOPREFIX) + if (flags & M_NOPREFIX || suppress_timestamps) { fprintf (fp, "%s%s%s\n", prefix, diff -ru3 openvpn-2.0_beta11/error.h openvpn-2.0_beta11+suppression/error.h --- openvpn-2.0_beta11/error.h 2004-08-15 07:28:35.000000000 -0500 +++ openvpn-2.0_beta11+suppression/error.h 2004-10-15 10:53:31.000000000 -0500 @@ -152,6 +152,7 @@ void error_reset (void); void set_debug_level (int level); void set_mute_cutoff (int cutoff); +void set_suppress_timestamps (bool suppressed); /* * File to print messages to before syslog is opened. diff -ru3 openvpn-2.0_beta11/openvpn.8 openvpn-2.0_beta11+suppression/openvpn.8 --- openvpn-2.0_beta11/openvpn.8 2004-08-18 20:35:06.000000000 -0500 +++ openvpn-2.0_beta11+suppression/openvpn.8 2004-10-15 10:57:47.000000000 -0500 @@ -161,6 +161,7 @@ [\ \fB\-\-local\fR\ \fIhost\fR\ ] [\ \fB\-\-log\-append\fR\ \fIfile\fR\ ] [\ \fB\-\-log\fR\ \fIfile\fR\ ] +[\ \fB\-\-suppress-timestamps\fR\ ] [\ \fB\-\-lport\fR\ \fIport\fR\ ] [\ \fB\-\-max\-clients\fR\ \fIn\fR\ ] [\ \fB\-\-mktun\fR\ ] @@ -1746,6 +1747,12 @@ than truncating the log file. .\"********************************************************* .TP +.B --suppress-timestamps +Avoid writing timestamps to log messages, even when they +otherwise would be prepended. In particular, this applies to +log messages sent to stdout. +.\"********************************************************* +.TP .B --writepid file Write OpenVPN's main process ID to .B file. diff -ru3 openvpn-2.0_beta11/options.c openvpn-2.0_beta11+suppression/options.c --- openvpn-2.0_beta11/options.c 2004-08-18 16:32:19.000000000 -0500 +++ openvpn-2.0_beta11+suppression/options.c 2004-10-15 10:45:06.000000000 -0500 @@ -210,6 +210,7 @@ " See --daemon above for a description of the 'name' parm.\n" "--log file : Output log to file which is created/truncated on open.\n" "--log-append file : Append log to file, or create file if nonexistent.\n" + "--suppress-timestamps : Don't log timestamps to stdout/stderr.\n" "--writepid file : Write main process ID to file.\n" "--nice n : Change process priority (>0 = lower, <0 = higher).\n" #ifdef USE_PTHREAD @@ -854,6 +855,7 @@ SHOW_BOOL (daemon); SHOW_INT (inetd); SHOW_BOOL (log); + SHOW_BOOL (suppress_timestamps); SHOW_INT (nice); SHOW_INT (verbosity); SHOW_INT (mute); @@ -2293,6 +2295,13 @@ options->log = true; redirect_stdout_stderr (p[1], false); } + else if (streq (p[0], "suppress-timestamps")) + { + ++i; + VERIFY_PERMISSION (OPT_P_GENERAL); + options->suppress_timestamps = true; + set_suppress_timestamps(true); + } else if (streq (p[0], "log-append") && p[1]) { ++i; diff -ru3 openvpn-2.0_beta11/options.h openvpn-2.0_beta11+suppression/options.h --- openvpn-2.0_beta11/options.h 2004-08-18 16:32:20.000000000 -0500 +++ openvpn-2.0_beta11+suppression/options.h 2004-10-15 08:57:15.000000000 -0500 @@ -183,6 +183,7 @@ int inetd; bool log; + bool suppress_timestamps; int nice; int verbosity; int mute;