<html lang="en">
<head>
<title>syslog; vsyslog - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Submitting-Syslog-Messages.html#Submitting-Syslog-Messages" title="Submitting Syslog Messages">
<link rel="prev" href="openlog.html#openlog" title="openlog">
<link rel="next" href="closelog.html#closelog" title="closelog">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.

This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="syslog%3b-vsyslog"></a>
<a name="syslog_003b-vsyslog"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="closelog.html#closelog">closelog</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="openlog.html#openlog">openlog</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Submitting-Syslog-Messages.html#Submitting-Syslog-Messages">Submitting Syslog Messages</a>
<hr>
</div>

<h4 class="subsection">18.2.2 syslog, vsyslog</h4>

<p>The symbols referred to in this section are declared in the file
<samp><span class="file">syslog.h</span></samp>.

<!-- syslog() is implemented as a call to vsyslog(). -->
<!-- syslog.h -->
<!-- BSD -->
<div class="defun">
&mdash; Function: void <b>syslog</b> (<var>int facility_priority, char *format, ...</var>)<var><a name="index-syslog-2035"></a></var><br>
<blockquote>
        <p><code>syslog</code> submits a message to the Syslog facility.  It does this by
writing to the Unix domain socket <code>/dev/log</code>.

        <p><code>syslog</code> submits the message with the facility and priority indicated
by <var>facility_priority</var>.  The macro <code>LOG_MAKEPRI</code> generates a
facility/priority from a facility and a priority, as in the following
example:

     <pre class="smallexample">          LOG_MAKEPRI(LOG_USER, LOG_WARNING)
</pre>
        <p>The possible values for the facility code are (macros):

     <!-- Internally, there is also LOG_KERN, but LOG_KERN == 0, which means -->
     <!-- if you try to use it here, just selects default. -->
          <dl>
<dt><code>LOG_USER</code><a name="index-LOG_005fUSER-2036"></a><dd>A miscellaneous user process
<br><dt><code>LOG_MAIL</code><a name="index-LOG_005fMAIL-2037"></a><dd>Mail
<br><dt><code>LOG_DAEMON</code><a name="index-LOG_005fDAEMON-2038"></a><dd>A miscellaneous system daemon
<br><dt><code>LOG_AUTH</code><a name="index-LOG_005fAUTH-2039"></a><dd>Security (authorization)
<br><dt><code>LOG_SYSLOG</code><a name="index-LOG_005fSYSLOG-2040"></a><dd>Syslog
<br><dt><code>LOG_LPR</code><a name="index-LOG_005fLPR-2041"></a><dd>Central printer
<br><dt><code>LOG_NEWS</code><a name="index-LOG_005fNEWS-2042"></a><dd>Network news (e.g. Usenet)
<br><dt><code>LOG_UUCP</code><a name="index-LOG_005fUUCP-2043"></a><dd>UUCP
<br><dt><code>LOG_CRON</code><a name="index-LOG_005fCRON-2044"></a><dd>Cron and At
<br><dt><code>LOG_AUTHPRIV</code><a name="index-LOG_005fAUTHPRIV-2045"></a><dd>Private security (authorization)
<br><dt><code>LOG_FTP</code><a name="index-LOG_005fFTP-2046"></a><dd>Ftp server
<br><dt><code>LOG_LOCAL0</code><a name="index-LOG_005fLOCAL0-2047"></a><dd>Locally defined
<br><dt><code>LOG_LOCAL1</code><a name="index-LOG_005fLOCAL1-2048"></a><dd>Locally defined
<br><dt><code>LOG_LOCAL2</code><a name="index-LOG_005fLOCAL2-2049"></a><dd>Locally defined
<br><dt><code>LOG_LOCAL3</code><a name="index-LOG_005fLOCAL3-2050"></a><dd>Locally defined
<br><dt><code>LOG_LOCAL4</code><a name="index-LOG_005fLOCAL4-2051"></a><dd>Locally defined
<br><dt><code>LOG_LOCAL5</code><a name="index-LOG_005fLOCAL5-2052"></a><dd>Locally defined
<br><dt><code>LOG_LOCAL6</code><a name="index-LOG_005fLOCAL6-2053"></a><dd>Locally defined
<br><dt><code>LOG_LOCAL7</code><a name="index-LOG_005fLOCAL7-2054"></a><dd>Locally defined
</dl>

        <p>Results are undefined if the facility code is anything else.

        <p><strong>NB:</strong> <code>syslog</code> recognizes one other facility code: that of
the kernel.  But you can't specify that facility code with these
functions.  If you try, it looks the same to <code>syslog</code> as if you are
requesting the default facility.  But you wouldn't want to anyway,
because any program that uses the GNU C library is not the kernel.

        <p>You can use just a priority code as <var>facility_priority</var>.  In that
case, <code>syslog</code> assumes the default facility established when the
Syslog connection was opened.  See <a href="Syslog-Example.html#Syslog-Example">Syslog Example</a>.

        <p>The possible values for the priority code are (macros):

          <dl>
<dt><code>LOG_EMERG</code><a name="index-LOG_005fEMERG-2055"></a><dd>The message says the system is unusable. 
<br><dt><code>LOG_ALERT</code><a name="index-LOG_005fALERT-2056"></a><dd>Action on the message must be taken immediately. 
<br><dt><code>LOG_CRIT</code><a name="index-LOG_005fCRIT-2057"></a><dd>The message states a critical condition. 
<br><dt><code>LOG_ERR</code><a name="index-LOG_005fERR-2058"></a><dd>The message describes an error. 
<br><dt><code>LOG_WARNING</code><a name="index-LOG_005fWARNING-2059"></a><dd>The message is a warning. 
<br><dt><code>LOG_NOTICE</code><a name="index-LOG_005fNOTICE-2060"></a><dd>The message describes a normal but important event. 
<br><dt><code>LOG_INFO</code><a name="index-LOG_005fINFO-2061"></a><dd>The message is purely informational. 
<br><dt><code>LOG_DEBUG</code><a name="index-LOG_005fDEBUG-2062"></a><dd>The message is only for debugging purposes. 
</dl>

        <p>Results are undefined if the priority code is anything else.

        <p>If the process does not presently have a Syslog connection open (i.e.,
it did not call <code>openlog</code>), <code>syslog</code> implicitly opens the
connection the same as <code>openlog</code> would, with the following defaults
for information that would otherwise be included in an <code>openlog</code>
call: The default identification string is the program name.  The
default default facility is <code>LOG_USER</code>.  The default for all the
connection options in <var>options</var> is as if those bits were off. 
<code>syslog</code> leaves the Syslog connection open.

        <p>If the <samp><span class="file">dev/log</span></samp> socket is not open and connected, <code>syslog</code>
opens and connects it, the same as <code>openlog</code> with the
<code>LOG_NDELAY</code> option would.

        <p><code>syslog</code> leaves <samp><span class="file">/dev/log</span></samp> open and connected unless its attempt
to send the message failed, in which case <code>syslog</code> closes it (with the
hope that a future implicit open will restore the Syslog connection to a
usable state).

        <p>Example:

     <pre class="smallexample">          
          #include &lt;syslog.h&gt;
          syslog (LOG_MAKEPRI(LOG_LOCAL1, LOG_ERROR),
                  "Unable to make network connection to %s.  Error=%m", host);
          
</pre>
        </blockquote></div>

<!-- syslog.h -->
<!-- BSD -->
<div class="defun">
&mdash; Function: void <b>vsyslog</b> (<var>int facility_priority, char *format, va_list arglist</var>)<var><a name="index-vsyslog-2063"></a></var><br>
<blockquote>
        <p>This is functionally identical to <code>syslog</code>, with the BSD style variable
length argument.

        </blockquote></div>

   </body></html>

