如何手动向Linux系统日志文件添加消息
日志文件是包含由系统本身记录的一组记录(或者事件列表)的文件。
使用日志文件,Sysadmin可以跟踪特定日期或者时间发生的情况。
管理员主要使用日志文件进行故障排除目的。
日志文件是自动生成的,并在公共目录/var/log /下保存。
我们还可以手动向Linux系统日志文件添加消息。
例如,在设置日志服务器后,我们可能希望检查日志服务器是否正常运行。
为此,我们可以在日志文件中手动添加一些条目以测试日志服务器。
这是Logger命令派上派上的位置。
使用Logger命令将消息添加到Linux系统日志文件
Logger命令是UTIL-Linux包的一部分,因此请勿打扰安装它。
让我告诉你一些例子。
手动添加条目到系统日志文件绝对简单! Logger命令的典型用法是:
logger <message-to-add>
例子:
$logger Welcome to theitroad
上面的命令将在系统日志文件中添加条目"欢迎theitroad"。
让我们验证消息是否已添加或者不使用"tail"命令:
$tail -l /var/log/syslog
示例输出:
Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on REST API socket for snapd user session agent. Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on GnuPG network certificate management daemon. Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on GnuPG cryptographic agent and passphrase cache. Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Sockets. Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Timers. Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Basic System. Jan 31 07:19:23 ubuntuserver systemd[1]: Started User Manager for UID 1000. Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Default. Jan 31 07:19:23 ubuntuserver systemd[1705]: Startup finished in 298ms. Jan 31 07:33:14 ubuntuserver sk: Welcome to theitroad
在输出中看到的时,给定的消息已添加到Syslog文件中。
说明:
不同的Linux操作系统将日志消息存储在不同的文件中。
我建议我们查看/var/log /目录知道日志存储的文件。
在基于RPM的系统中,如CentOS,常规日志消息将存储在/var/log/messages文件中而不是/var/log/syslog文件中。
我们还可以通过单个或者双引号括起来添加消息。
$logger "Welcome to theitroad blog"
或者,
$logger 'Howdy, Welcome to theitroad blog'
检查输入是否已使用 tail命令添加到syslog文件中:
$tail -l /var/log/syslog [...] Jan 31 07:40:02 ubuntuserver sk: Welcome to theitroad blog Jan 31 07:40:31 ubuntuserver sk: Howdy, Welcome to theitroad blog
将记录器PID添加到系统日志
我们甚至可以使用下面的-i标志使用每行记录记录器进程的PID。
$logger -i 'Howdy, Welcome to theitroad blog'
使用 tail命令验证日志消息:
$tail -l /var/log/syslog [...] Jan 31 07:49:22 ubuntuserver sk[1879]: Howdy, Welcome to theitroad blog
其中1879年是记录器的过程ID。
将标签添加到消息
由于我们可能在上面的输出中注意到,新添加的条目被标记为当前登录的用户名(例如:SK)。
默认标记是终端上登录的用户的名称。
但是,我们可以使用使用-t标志来标记使用特定标记的每一行标记。
$logger -i -t theitroad 'Howdy, Welcome to theitroad blog'
检查日志条目:
$tail -l /var/log/syslog [...] Jan 31 07:54:02 ubuntuserver theitroad[1881]: Howdy, Welcome to theitroad blog
看到了吗?
最后一个条目用onirad标记,其进程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 theitroad" --priority user.warning
默认优先级为"user.notice"。
请参阅Logger Man Page以了解所有可用的优先级选项。
从'stdin'和消息输入到系统日志
我们可以从站点输入输入的输入,并使用命令将它们推向syslog:
$echo "Welcome to theitroad" | logger
向远程日志服务器发送消息
要将消息发送到在特定端口运行的远程Syslog服务器,运行:
$logger "Welcome to theitroad" --server <hostname-or-ip> --port <port-no>
或者,
$logger "Welcome to theitroad" -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字符。
有关更多详细信息,请检查人文页。
$man logger