使用Logger命令添加到Linux日志文件
使用Logger命令将消息添加到Linux系统日志文件,logger命令是util-linux软件包的一部分,因此请不要安装它。下面给到大家一些示例:
1.1. 简单使用
$ logger Welcome to OSTechNix
$logger "Welcome to OSTechNix blog"
上面的命令会将条目“ Welcome to OSTechNix”添加到系统日志文件中。
让我们使用“ tail”命令验证消息是否已添加:
$ tail -l /var/log/syslog
样本输出:
Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on REST API socket
Jan 31 07:33:14 ubuntuserver sk: Welcome to OSTechNix
注意:
不同的Linux操作系统将日志消息存储在不同的文件中。我建议您查看/ var/log/目录,以了解日志存储在哪些文件中。在基于RPM的系统(如CentOS)中,常规日志消息将存储在/var/log/messages文件中,而不是/var/log/syslog文件中。
1.2. 常用参数
logger 用于往系统中写入日志,他提供一个shell命令接口到syslog系统模块
语法:
logger [options] [messages]
参数:
-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
现实版本信息并退出
日志级别:
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 -i 'Howdy, Welcome to OSTechNix blog'
使用tail命令验证日志消息:
$ tail -l /var/log/syslog
[...]
Jul 1 10:23:22 10-23-97-171 ubuntu[18813]: Howdy, Welcome to OSTechNix blog
18813是记录器的进程ID。
在消息中添加标签
您可能会在上面的输出中注意到,新添加的条目会使用当前登录的用户名(即sk)进行标记。默认标签是在终端上登录的用户的名称。但是,我们可以使用-t标志将每行记录为带有特定标记的记录。
$ logger -i -t ostechnix 'Howdy, Welcome to OSTechNix blog'
检查日志条目:
$ tail -l /var/log/syslog
[...]
Jan 31 07:54:02 ubuntuserver ostechnix[1881]: Howdy, Welcome to OSTechNix blog
最后一个条目带有ostechnix标记,其进程ID为1881。
将消息从文件添加到日志文件
也可以将文件中的条目添加到我们的系统日志文件中。
让我们创建一个示例文本文件。
$ echo "This is test file" > file.txt
$ cat file.txt
This is test file
现在,使用以下命令将file.txt的内容添加到系统日志文件中:
$ logger -f file.txt
$ tail -l /var/log/syslog
[...]
Jan 31 08:43:06 ubuntuserver sk: This is test file
如果输入文件中有任何空行,则可以使用如下所示的-e标志将它们排除在添加到日志文件之外
$ logger -e -f file.txt
优先记录消息
可以使用给定的优先级记录消息。
$ logger "Welcome To OSTechNix" --priority user.warning
默认优先级为“ user.notice”。请参阅记录器手册页以了解所有可用的优先级选项。
将来自“ stdin”的输入和消息发送到系统日志
我们可以使用命令从支架输入中输入内容,然后使用以下命令将其推入系统日志:
$ echo "Welcome to OSTechNix" | logger
记录器将消息发送到远程日志服务器
要将消息发送到在特定端口上运行的远程syslog服务器,请运行:
$ logger "Welcome to OSTechNix" --server <hostname-or-ip> --port <port-no>
或者,
$ logger "Welcome to OSTechNix" -n <hostname-or-ip> -p <port-no>
默认端口号是514。
限制消息的大小
我们可以使用–size标志设置允许的最大消息大小。
$ logger --size 5 abcdefghijklmnopqrswxyz
查看日志消息大小:
$ tail -l /var/log/syslog
[...]
Jan 31 09:09:02 ubuntuserver sk: abcde
默认值为1KiB字符。