linux命令之logger


logger 用于往系统中写入日志,他提供一个shell命令接口到syslog系统模块

logger 语法
logger [options] [messages]

**options (选项):**
    -d, --udp  
        使用数据报(UDP)而不是使用默认的流连接(TCP)
    -i, --id   
        逐行记录每一次logger的进程ID
    -f, --file file_name
        记录特定的文件
    -h, --help 
        显示帮助文本并退出
    -n, --server 
        写入指定的远程syslog服务器,使用UDP代替内装式syslog的例程
    -P, --port port_num
        使用指定的UDP端口。默认的端口号是514
    -p, --priority priority_level
        指定输入消息的优先级,优先级可以是数字或者指定为 " facility.level" 的格式。比如:" -p local3.info " local3 这个设备的消息级别为 info。默认级别是 "user.notice"
    -s, --stderr
        输出标准错误到系统日志。
    -t, --tag tag
        指定标记记录
    -u, --socket socket
        写入指定的socket,而不是到内置系统日志例程。
    -V, --version
        现实版本信息并退出

**messages:**写入log文件的内容消息,可以与-f配合使用。

logger 以0退出表示成功,大于0表示失败。

日志级别

facility:
    auth:             用户授权
    authpriv:         授权和安全
    cron:             计划任务
    daemon:           系统守护进程
    kern:             与内核有关的信息
    lpr                与打印服务有关的信息
    mail               与电子邮件有关的信息
    news               来自新闻服务器的信息
    syslog             由syslog生成的信息
    user               用户的程序生成的信息,默认
    uucp               由uucp生成的信息
    local0~7           用来定义本地策略

level:
    alert          需要立即采取动作
    crit           临界状态
    debug          调试
    emerg          系统不可用
    err            错误状态
    error          错误状态
    info           正常消息
    notice         正常但是要注意

示例:

$ logger System Rebooted  #往系统日志例程中写入 “System Rebooted”  可在/var/log/syslog中查看

写入到指定的log文件中示例:

$ vi /etc/rsyslog.conf    #我的系统是ubuntu1204,在最后一行加入   local3.* /var/log/my_test.log   意思是来自local3的所有消息都记录到 /var/log/my_test.log 中

$ service rsyslog restart  #重启rsyslog服务

$ logger -i -t "my_test" -p local3.notice "test_info"   
$ cat /var/log/my_test.log  
May  5 21:27:37 gino-virtual-machine my_test[3651]: test_info

相关内容