Skip to content

logger命令

1、使用FUNCNAME和BASH_LINENO实现shell脚本中定位函数错误在代码中的位置

代码见:D:\Github\Storage\shell\log\custom_log.sh 特点:BASH_LINENO显示函数调用的位置行数

日志成型

#!/bin/bash

# 日志打印
LOG()
{
    echo "`date` ${FUNCNAME[1]}:${BASH_LINENO[0]} $@"
}

LOG "hello world!"

2、logger命令

终于明白logger命令使用后为啥什么都没有,原来是日志输出到vim /var/log/syslog文件中去了(/var/log/kern.log文件)。 logger命令用于向系统日志中写入消息。它允许用户将自定义消息添加到系统日志中,这些消息可以用于跟踪系统活动、故障排除和记录重要事件。 logger是一个shell命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。

**options (选项):**
   -d, --udp 
       使用数据报(UDP)而不是使用默认的流连接(TCP)
   -i, --id  
       逐行记录每一次logger的进程ID
   -f, --file file_name
       记录特定的文件
   -h, --help
       显示帮助文本并退出
   -n, --server
       写入指定的远程syslog服务器,使用UDP代替内装式syslog的例程
   -s, --stderr
       输出标准错误到系统日志。
   -t, --tag tag
       指定标记记录
   -u, --socket socket
       写入指定的socket,而不是到内置系统日志例程。
   -V, --version
        显示版本信息并退出
   -P, --port port_num
       使用指定的UDP端口。默认的端口号是514
   -p, --priority priority_level
       指定输入消息日志级别,优先级可以是数字或者指定为 "facility.level" 的格式。

实战

[root@ubuntu0006:~] #logger -p info -t test "hello world"
[root@ubuntu0006:~] #journalctl -f
-- Logs begin at 三 2023-11-15 13:27:45 CST. --
11月 20 13:49:27 ubuntu0006 systemd-timesyncd[399]: Timed out waiting for reply from 91.189.91.157:123 (ntp.ubuntu.com).
11月 20 13:49:37 ubuntu0006 systemd-timesyncd[399]: Timed out waiting for reply from 185.125.190.56:123 (ntp.ubuntu.com).
11月 20 13:49:47 ubuntu0006 systemd-timesyncd[399]: Timed out waiting for reply from [2620:2d:4000:1::3f]:123 (ntp.ubuntu.com).
11月 20 13:49:57 ubuntu0006 systemd-timesyncd[399]: Timed out waiting for reply from [2620:2d:4000:1::41]:123 (ntp.ubuntu.com).
11月 20 13:50:08 ubuntu0006 systemd-timesyncd[399]: Timed out waiting for reply from [2620:2d:4000:1::40]:123 (ntp.ubuntu.com).
11月 20 13:59:01 ubuntu0006 CRON[1901]: pam_unix(cron:session): session opened for user root by (uid=0)
11月 20 13:59:01 ubuntu0006 CRON[1903]: (root) CMD (/usr/sbin/logrotate -vf /etc/logrotate.d/nginx)
11月 20 13:59:01 ubuntu0006 CRON[1901]: (CRON) info (No MTA installed, discarding output)
11月 20 13:59:01 ubuntu0006 CRON[1901]: pam_unix(cron:session): session closed for user root
11月 20 14:12:00 ubuntu0006 test[18324]: hello world
^C

This website is released under the MIT License.