zoukankan      html  css  js  c++  java
  • perl的Sys::Syslog模块(openlog,syslog,closelog函数,setlogsock)-自定义日志

    perl的Sys::Syslog模块(openlog,syslog,closelog函数,setlogsock)-自定义日志

    http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=30572348&id=5603558

    自定义日志模块(Sys::Syslog)

    1、语法:
    use Sys::Syslog;                          # all except setlogsock(), or:
    use Sys::Syslog qw(:DEFAULT setlogsock);  # default set, plus setlogsock()增强版
    use Sys::Syslog qw(:standard :macros);    # standard functions, plus macros

    2、setlogsock使用
         setlogsock($sock_type)
         setlogsock($sock_type, $stream_location)
               ·   "native" - use the native C functions from your syslog(3) library (added in "Sys::Syslog" 0.15).
               ·   "eventlog" - send messages to the Win32 events logger (Win32 only; added in "Sys::Syslog" 0.19).
               ·   "tcp" - connect to a TCP socket, on the "syslog/tcp" or "syslogng/tcp" service.
               ·   "udp" - connect to a UDP socket, on the "syslog/udp" service.
               ·   "inet" - connect to an INET socket, either TCP or UDP, tried in that order.
               ·   "unix" - connect to a UNIX domain socket (in some systems a character special device).  The name of that socket is
                   the second parameter or, if you omit the second parameter, the value returned by the "_PATH_LOG" macro (if your
                   system defines it), or /dev/log or /dev/conslog, whatever is writable.
               ·   "stream" - connect to the stream indicated by the pathname provided as the optional second parameter, or, if
                   omitted, to /dev/conslog.  For example Solaris and IRIX system may prefer "stream" instead of "unix".
               ·   "pipe" - connect to the named pipe indicated by the pathname provided as the optional second parameter, or, if
                   omitted, to the value returned by the "_PATH_LOG" macro (if your system defines it), or /dev/log (added in
                   "Sys::Syslog" 0.21).
               ·   "console" - send messages directly to the console, as for the "cons" option of "openlog()". 

    3、函数:
    3.1openlog函数
      openlog($ident, $logopt, $facility;)  定义日志内容     
              $ident //每一个日志信息前均会附加$ident
              $logopt //选项
              $facility // 类型

      logopt选项:
            ·   "cons" - This option is ignored, since the failover mechanism will drop down to the console automatically if all other media fail.
            ·   "ndelay" - Open the connection immediately (normally, the connection is opened when the first message is logged).
            ·   "nofatal" - When set to true, "openlog()" and "syslog()" will only emit warnings instead of dying if theconnection to the syslog can't be established.
            ·   "nowait" - Don't wait for child processes that may have been created while logging the message.  (The GNU C library does not create a child process, so this option has no effect on Linux.)
            ·   "perror" - Write the message to standard error output as well to the system log.
            ·   "pid" - Include PID with each message.

      facility类型:
          auth            用户认证
          authpriv        有特权的用户认证
          cron             cron守护进程
          daemon          各种系统守护进程
          ftp              ftp守护进程
          kern             内核消息
          local0-local7   保留用于本地用法
          lpr               打印机
          mail            邮件
          news            新闻
          syslog          内部syslog
          uucp            uucp系统
          user            各种用户程序来的消息

    3.2syslog函数
      syslog($priority, $message)
      syslog($priority, $format, @args)
      syslog可定义优先级
      $priority can specify a level, or a level and a facility.

      *先用openlog()定义格式,syslog()定义内容 //use "openlog()" before using "syslog()"

    3.3closelog()
            Closes the log file and returns true on success.


    具体例子:
    setlogsock(["unix", "udp", "native", "tcp"]);  #通过unix,udp,tcp socket连接LOG  
    my $identity = "czw-syslog";
    my @options = ('cons','pid');
    my $facility = "local5";
    openlog($identity,@options,$facility);  #定义了格式等  

    syslog('info', "message");

    -----------------------------

    $facility="local0";
    openlog($identity,@options,$facility);
    #syslog 优先级:  emerg alert crit err warning notice info debug
    syslog('err',$message);

    ===================================

  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/9287841.html
Copyright © 2011-2022 走看看