Early use of log() does not end up in kernel msg buffer
John Baldwin
jhb at freebsd.org
Mon Apr 6 20:18:28 UTC 2015
On Thursday, March 26, 2015 10:20:13 PM Eric Badger wrote:
> Using log(9) when no process is reading the log results in the message
> going only to the console (contrast with printf(9), which goes to the
> console and to the kernel message buffer in this case). I believe it is
> truer to the semantics of logging for messages to *always* go to the
> message buffer (where they can eventually be collected and in fact put
> into a logfile). I therefore propose the attached patch, which sends
> log(9) to the message buffer always, and to the console only if no one
> has yet opened the log.
>
> It may be more complete to log to the console only if the log level is
> greater than some (user defined) value, but this seems like that might
> be more than necessary for this case.
>
> Thoughts?
I think phk@ broke this back in 70239. Before that the log() function did
this:
log()
{
/* log to the msg buffer */
kvprintf(fmt, msglogchar, ...);
if (!log_open) {
/* log to console */
kvprintf(fmt, putchar, ...);
}
}
I think your patch is fine unless phk@ (cc'd) has a reason for not wanting to
do this.
--
John Baldwin
More information about the freebsd-current
mailing list