Re: Early use of log() does not end up in kernel msg buffer

From: John Baldwin <jhb_at_freebsd.org>
Date: Mon, 06 Apr 2015 15:49:44 -0400
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_at_ 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_at_ (cc'd) has a reason for not wanting to
do this.

-- 
John Baldwin
Received on Mon Apr 06 2015 - 18:18:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:56 UTC