Ubuntu触发日志记录的常见方法
logger命令手动触发日志logger是Ubuntu自带的命令行工具,用于向系统日志(如/var/log/syslog或/var/log/messages)发送自定义消息。基本语法为:
logger [选项] "日志消息"
常用选项:
-t:指定日志标签(用于标识消息来源,如-t "MyApp");-p:指定日志优先级(格式为facility.level,如local0.info表示本地0设施的信息级别)。logger -t "MyApp" -p local0.info "这是一条自定义日志消息"journalctl或grep过滤查看。Ubuntu系统中的许多操作会自动触发日志记录,无需手动干预:
sudo systemctl restart apache2)时,systemd-journald会记录服务状态变化;apt或dpkg安装/卸载软件包时,操作日志会保存到/var/log/dpkg.log;dmesg查看内核相关事件)。通过自定义脚本或程序生成日志消息,常见方式包括:
echo或logger命令将消息写入日志,如echo "脚本执行完成" | sudo tee /var/log/myscript.log;logging模块配置日志输出,示例代码:import logging
logging.basicConfig(filename='/var/log/myapp.log', level=logging.INFO)
logging.info('这是一条Python程序日志消息')
执行后,消息会写入/var/log/myapp.log。journalctl查看实时日志journalctl是systemd的日志管理工具,用于查看、过滤和管理系统日志:
journalctl;journalctl -f(类似tail -f);journalctl -u service_name(如journalctl -u apache2);journalctl -p err(查看错误级别及以上日志)。rsyslog是Ubuntu默认的日志服务,可通过修改配置文件触发特定日志记录:
sudo nano /etc/rsyslog.conf,添加规则(如将local2.debug级别的日志写入/var/log/myapp.log):local2.debug /var/log/myapp.log & stop(& stop表示停止进一步处理该日志);/etc/rsyslog.d/目录下创建新文件(如sudo nano /etc/rsyslog.d/myapp.conf),添加上述规则,避免修改主配置文件;sudo systemctl restart rsyslog使配置生效。/dev/kmsg直接写入内核日志/dev/kmsg是内核消息缓冲区的设备文件,可直接写入自定义内核日志(需root权限):
echo "这是一条内核日志消息" | sudo tee /dev/kmsg
写入的消息会通过rsyslog或journalctl捕获,可通过dmesg查看。