Date: Tue, 8 Apr 2003 17:34:43 -0500 From: Dan Nelson <dnelson@allantgroup.com> To: Christopher Nehren <apeiron@comcast.net> Cc: freebsd-questions@freebsd.org Subject: Re: Return values of the syslog(3) family Message-ID: <20030408223443.GA30909@dan.emsphone.com> In-Reply-To: <1049840007.685.79.camel@prophecy.dyndns.org> References: <1049840007.685.79.camel@prophecy.dyndns.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Apr 08), Christopher Nehren said: > ... or rather, lack thereof. I'm not quite sure whom to ask about > this, so please redirect me if this isn't the appropriate forum. > > I've looked at the prototypes of various BSD and Linux systems' > syslog(3) calls, and they all have 'void' as the return type. Now, > logically, since a log file is being written, wouldn't it be nice to > know whether that call executed successfully? Yes, I've already > thought of the "If you can't write to syslog, then you have larger > problems than this" ... but how would one -know- they have these > problems? I admit that I'm probably missing something about the > Nature of Programming; but at least to this newbie, it seems like it > defeats part of the point of calling the functions in the first > place. TIA for any information about this. Syslogging is done by writing to the /var/run/log pipe. If the write succeeds, the app continues. That just means that the data is in the pipe, though. Syslogd can take its time emptying the pipe (within reasonable limits, or the other end will block), so it many not be able to return an error until long after the syslog() call has returned at the client's side. Syslogd can also forward to a remote server via UDP packets, so even though a log entry may eventually get written, there's no guarantee that it's even on the same machine or that the packets made it. -- Dan Nelson dnelson@allantgroup.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030408223443.GA30909>