• linux日志logger命令详解


    通过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文件中。

     

    示例:
    vim /etc/rsyslog.conf     #在最后一行加入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

    -i 在每行都记录进程ID

    -t my_test每行记录都加上“my_test”这个标签

    -p local3.notice 设置记录的设备和级别

    "test_info"  输出信息

    1。修改文件:

    编辑syslog.conf,

    vim /etc/syslog.conf

    在第一行加入local3.none,使得设备local3的日志不记录在messages文件里,

    # Log anything (except mail) of level info or higher.

    # Don't log private authentication messages!

    *.info;mail.none;authpriv.none;cron.none;local1.none;local3.none   /var/log/messages

    将设备local3的所有级别的信息都记录在userlog文件里,

    #user log

    local3.*   /var/log/userlog

     

    重新加载syslog服务的配置文件

    [root@KEVEIN Slides]# service syslog restart

    Reloading syslogd... [ OK ]

    Reloading klogd... [ OK ]

    2。测试

    测试机器的环境:

    OS:Red Hat Enterprise Linux 5 update 3

    Network: 192.168.0.100/24  Gateway:192.168.0.1

    [root@KEVEIN Slides]# ping 192.168.0.1 | logger -it logger_test -p local3.notice &

    [2] 22484

    命令logger -it logger_test -p local3.notice中的参数含义:

    -i 在每行都记录进程ID

    -t logger_test 每行记录都加上“logger_test”这个标签

    -p local3.notice 设置记录的设备和级别

     

    [root@KEVEIN Slides]# tail -f /var/log/userlog

    Oct 6 12:48:43 kevein logger_test[22484]: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

    Oct 6 12:48:43 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=49.7 ms

    Oct 6 12:48:44 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=68.4 ms

    Oct 6 12:48:45 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=315 ms

    Oct 6 12:48:46 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=279 ms

    Oct 6 12:48:47 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=347 ms

    Oct 6 12:48:49 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=6 ttl=253 time=701 ms

    Oct 6 12:48:50 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=7 ttl=253 time=591 ms

    Oct 6 12:48:51 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=8 ttl=253 time=592 ms

    Oct 6 12:48:52 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=9 ttl=253 time=611 ms

    Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms

    ping命令的输出成功输出到/var/log/userlog文件中,实验成功。

  • 相关阅读:
    【安徽集训】fiend
    【安徽集训】Emerald
    【安徽集训】Entropy
    【安徽集训】字符串
    【福建集训】果树
    【CF335 E】Counting Skyscrapers
    【BZOJ 3514】Codechef MARCH14 GERALD07 加强版
    【未知来源】Randomized Binary Search Tree
    【ZJOI 2016】旅行者
    【AGC002 E】Candy Piles
  • 原文地址:https://www.cnblogs.com/ymy124/p/7069915.html
Copyright © 2020-2023  润新知