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

linux日志logger命令详解的更多相关文章

  1. Linux日志五大命令详解

    1.who 命令 who 命令查询 utmp 文件并报告当前登录的每个用户.Who 的缺省输出包括用户名.终端类型.登录日期及远程主机.使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其 ...

  2. 【转帖】Linux定时任务Crontab命令详解

    Linux定时任务Crontab命令详解 https://www.cnblogs.com/intval/p/5763929.html 知道有crontab 以及 at 命令 改天仔细学习一下 讲sys ...

  3. Linux定时任务Crontab命令详解_转

    转自:Linux定时任务Crontab命令详解 (部分修改) linux 定时系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服 ...

  4. [转帖]Linux的wget命令详解

    Linux的wget命令详解 来源不明 找到的也是转帖的 https://www.cnblogs.com/cindy-cindy/p/6847502.html Linux wget是一个下载文件的工具 ...

  5. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

  6. linux之find命令详解

    linux之find命令详解 查找文件find ./ -type f查找目录find ./ -type d查找名字为test的文件或目录find ./ -name test查找名字符合正则表达式的文件 ...

  7. Linux下rar命令详解

    Linux下rar命令详解 用法: rar <命令> -<选项1> ….-<选项N> < 操作文档> <文件…> <@文件列表…> ...

  8. linux下tar命令详解

     linux下tar命令详解    tar是Linux环境下最常用的备份工具之一.tar(tap archive)原意为操作磁带文件,但基于Linux的文件操作机制,同样也可适用于普通的磁盘文件.ta ...

  9. Linux下chkconfig命令详解(转)

    Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. ...

随机推荐

  1. PHP博大精深,入门容易,精通难,怎么才能真正学好PHP

    基础最重要  (1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度  (2)理解动态语言的概念,运做机制,熟悉PHP语法  (3)学习如何将PHP与HT ...

  2. ansible 下lineinfile详细使用

    ansible 下lineinfile详细使用 时间 2016-12-13 18:02:31  51CTO推荐博文 原文  http://zouqingyun.blog.51cto.com/78224 ...

  3. 2018-2019-2 网络对抗技术 20165228 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165228 Exp2 后门原理与实践 (1)例举你能想到的一个后门进入到你系统中的可能方式? 在使用盗版软件,盗版系统,甚至游戏外挂时,往往会让我们关闭杀毒 ...

  4. JavaScript中为什么使用立即执行函数来封装模块?

    最近在学习JavaScript基础,在学习到面向对象编程时,学习到在JavaScript中实现模块化的方法,其中一个重要的点是如何封装私有变量. 实现封装私有变量的方法主要是: 使用构造函数 func ...

  5. 基本的java加密算法MD5等等

    简单的java加密算法有: BASE64       严格地说,属于编码格式,而非加密算法 MD5             (Message Digest algorithm 5,信息摘要算法) SH ...

  6. s21day19 python笔记

    s21day19 python笔记 一.面向对象的基本知识 1.1 基本格式 # 定义类 class 类名: def 方法名(self,name): print(name) return 123 de ...

  7. ExcelUploadUtil

    package com.rscode.credits.util; import java.io.File; import java.io.FileInputStream; import java.io ...

  8. 百战程序员——JSP

    JSP全称是什么?它相比servlet有什么优势?有什么劣势? JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计. JSP技术使用Jav ...

  9. es6去重

    // set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目. var arr=[9,9,"丸子","丸子",undefined, ...

  10. TIME_WAIT

    前言 请说说你对TCP连接中time_wait状态的理解 解答: 先上TCP的状态变迁图 1. time_wait状态如何产生? 由上面的变迁图,首先调用close()发起主动关闭的一方,在发送最后一 ...