通过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文件中,实验成功。

============ End

通过logger命令记录日志的更多相关文章

  1. linux日志logger命令详解

    通过logger命令记录日志 logger是一个shell命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息. ------------------- ...

  2. logger命令

    logger是一个shell命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件()写入一行信息. -i 在记录上显示pid进程号 -t 给日志记录打标签 1.直接 ...

  3. bash代码

    bash代码: #!/bin/bash MySQLSTARTUP="/data/3306/mysql" DbProcessCount=`ps -ef|grep mysql|grep ...

  4. 【转】Linux shell笔记

    由于工作的需要,越来越多的接触到linux系统.最近看了<Linux与Unix Shell>这本书,安装书的章节整理了一些自己认为比较重要的命令,方便以后查阅. No.001 文件安全与权 ...

  5. Arthas 3.1.2 版本发布 | 增加 logger/heapdump/vmoption 命令

    最近偶尔有用户反馈某些 HTTP 接口出现超时问题,而 web 服务端的 Trace 监控没有出现 http 返回值为 503 等异常情况.出现这种情况一般是web容器出现问题,客户端连 Arthas ...

  6. 记录日志框架:log4net使用

    一.log4net简介 Log4net是Apache下一个开放源码的项目,我们可以控制日志信息的输出目的地.Log4net中定义了多种日志信息输出模式.在做项目的时候最头疼的是在程序发布到正式环境之后 ...

  7. syslog命令

    更多请关注 Linux命令大全 syslog 介绍 syslog是Linux系统默认的日志守护进程.默认的syslog配置文件是/etc/syslog.conf文件.程序,守护进程和内核提供了访问系统 ...

  8. .NET Core的日志[1]:采用统一的模式记录日志

    记录各种级别的日志是所有应用不可或缺的功能.关于日志记录的实现,我们有太多第三方框架可供选择,比如Log4Net.NLog.Loggr和Serilog 等,当然我们还可以选择微软原生的诊断框架(相关A ...

  9. 基于DDD的.NET开发框架 - ABP日志Logger集成

    返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...

随机推荐

  1. 调用bash的时候出现curl command not found

    调用bash的时候出现curl command not found 解决办法: apt-get install curl

  2. 使用git bash编译安装sysbench时遇到的坑

      Preface       When I was compiling the sysbench just now,I encountered some failures in the preced ...

  3. 【SpringCloud】第四篇:断路器(Hystrix)

    前言: 必需学会SpringBoot基础知识 简介: spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选. ...

  4. 初学DirectX(1)

    初学Direct X (1) Direct3D设备用于访问视频卡的帧缓冲区,以及后台缓冲区.由于IDE是vs2013,默认安装了direct 9,只需要在使用头文件(1)并像使用库文件(2)即可 #i ...

  5. C do whlie 数数位

    #include <stdio.h> int main(int argc, char **argv) {    //定义两个变量 x 跟 n,n的初始化为0:  int x;  int n ...

  6. 【system.string】使用说明

    对象:system.string 说明:提供一系列针对字符串类型的操作 目录: 方法 返回 说明 system.string.isBlank( string ) [True | False]  检测参 ...

  7. 【Python 开发】第二篇 :Python安装

    一.python3.x安装 1)由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到. 官网:https://www.python.o ...

  8. 最小生成树与Prim算法

    最小生成树(MST) 定义 首先是一棵树(废话 其次没有回路(废话 包含全部顶点和V-1条边 边的权重和最小!!!!! 所以如果是单棵最小生成树,至少说明图是连通的.不然就是森林. 生成思路 既然是根 ...

  9. CPU设计学习-流水线

    各种名词 标量流水线 超级流水线 超标量流水线与多发射技术 经典五级流水线 IF |Instruction Fetch,取指 ID |Instruction Decode,译码 EX |Execute ...

  10. PHP正则相关

    描述字符串排列模式的一种自定义语法规则 如果可以使用字符串函数处理的任务 就不要使用正则 正则表达式 就是通过构建具有特定规则的模式,与输入的字符信息比较 在进行 分割 匹配 查找 替换 等工作   ...