• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • openlog()

    (PHP 4, PHP 5, PHP 7)

    Open connection to system logger

    说明

    openlog(string $ident,int $option,int $facility): bool

    openlog()opens a connection to the system logger for a program.

    The use ofopenlog()is optional. It will automatically be called bysyslog()if necessary, in which case$identwill default toFALSE.

    参数

    $ident

    The string$identis added to each message.

    $option

    The$optionargument is used to indicate what logging options will be used when generating a log message.

    openlog()Options
    ConstantDescription
    LOG_CONSif there is an error while sending data to the system logger, write directly to the system console
    LOG_NDELAYopen the connection to the logger immediately
    LOG_ODELAY(default) delay opening the connection until the first message is logged
    LOG_PERRORprint log message also to standard error
    LOG_PIDinclude PID with each message
    You can use one or more of these options. When using multiple options you need toORthem, i.e. to open the connection immediately, write to the console and include the PID in each message, you will use:LOG_CONS | LOG_NDELAY | LOG_PID

    $facility

    The$facilityargument is used to specify what type of program is logging the message. This allows you to specify (in your machine's syslog configuration) how messages coming from different facilities will be handled.

    openlog()Facilities
    ConstantDescription
    LOG_AUTHsecurity/authorization messages (useLOG_AUTHPRIVinstead in systems where that constant is defined)
    LOG_AUTHPRIVsecurity/authorization messages (private)
    LOG_CRONclock daemon (cron and at)
    LOG_DAEMONother system daemons
    LOG_KERNkernel messages
    LOG_LOCAL0...LOG_LOCAL7reserved for local use, these are not available in Windows
    LOG_LPRline printer subsystem
    LOG_MAILmail subsystem
    LOG_NEWSUSENET news subsystem
    LOG_SYSLOGmessages generated internally by syslogd
    LOG_USERgeneric user-level messages
    LOG_UUCPUUCP subsystem
    Note:

    LOG_USERis the only valid log type under Windows operating systems

    返回值

    成功时返回TRUE,或者在失败时返回FALSE

    参见

    In second parameter int $option, PI means Process ID (PID).
    That is the unique number given to that process. For eg [30326]
    To those curious; switching between different facilities is NOT an issue. There is no apparent memory overhead (nor slowdown) by calling openlog multiple(12 * 10000) times.
    Shown by this example:
    <?php
    $facilities = array(
      LOG_AUTH,
      LOG_AUTHPRIV,
      LOG_CRON,
      LOG_DAEMON,
      LOG_KERN,
      LOG_LOCAL0,
      LOG_LPR,
      LOG_MAIL,
      LOG_NEWS,
      LOG_SYSLOG,
      LOG_USER,
      LOG_UUCP,
    );
    for ($i = 0; $i < 10000; $i++) {
      foreach ($facilities as $facility) {
        openlog('test', LOG_PID, $facility);
        syslog(LOG_ERR, "This is a test: " . memory_get_usage(true));
      }
    }
    ?>
    

    上篇:long2ip()

    下篇:pfsockopen()