首页/系统/Linux 运维命令速查/logger 手动写入日志

logger 手动写入日志

logger 把消息按 syslog 协议送进本地日志(journal/rsyslog),用于测试日志链路、标记变更时间点;-t 打标签、-p 指定级别。

Linux 运维命令速查系统更新于 2026-10-13

logger 手动写日志

logger 属于 util-linux,把一条自定义消息按系统日志协议投递给本机日志服务,或者在指定远端时直接发往远端收集器。它有两个高价值用法:测试日志链路是否通畅,以及在变更操作前后打一条带标签的标记,让排查时能在时间线上直接定位变更点。

基本信息

适用平台Linux(util-linux)
语法logger [选项] 消息
常用选项-t 标签、-p 设施与级别、-n 远端主机、-P 端口、-s 同时输出到标准错误
默认行为发往本机日志服务,使用默认设施与级别

典型使用场景

  • 变更前后各打一条标记,排查时快速定位变更发生的时刻
  • 验证远端日志收集链路是否真的收到数据
  • 在脚本里输出结构化状态,让日志与业务记录在同一时间线上
  • 模拟某个级别的日志,验证告警规则是否会被触发
  • 排查日志分流配置时,用不同设施发送测试消息

常用示例

常用示例
logger -t deploy 'release v1.2.3 started'                 # 带标签写入本机日志
logger -p local0.err -t myapp 'disk quota exceeded'        # 指定设施与级别
logger -n 10.0.0.9 -P 514 -t probe 'test to remote syslog' # 测试远端收集器
logger -s -t maint 'begin maintenance window'              # 同时输出到屏幕
journalctl -t deploy -n 5                                   # 按标签回查(systemd 系统)
grep 'deploy' /var/log/messages | tail -5                   # 传统日志文件回查

参数与级别读法

参数含义说明
-t消息标签显示为消息来源标识,便于过滤
-p设施与级别写成设施.级别两部分
-n 与 -P远端主机与端口用来测试远端收集器是否可达
-s同时写到标准错误交互确认时避免还要去翻日志
级别序号从紧急到调试依次降低级别名写错会被当作无效值处理
做变更时用带标签的方式打一条标记,排查时就能在系统日志时间线上直接定位变更发生点,比事后对时间戳省事得多。

使用要点

  • 测试远端收集链路时,同时在对端确认是否收到
  • 标签尽量唯一且可搜索,避免与常见关键词冲突
  • 不同设施会被分流到不同日志文件,选择前先确认收集端配置
  • 脚本里把关键状态写成固定格式,便于后续用脚本提取
  • 不要把口令或敏感数据写进日志消息
发送到远端时默认走简单传输,链路不通时消息可能被静默丢弃;用它做链路测试要同时在接收端确认,而不是只看命令是否报错。

易错点

  • 远端发送失败时可能没有任何报错,误以为日志已上报,测试链路必须在对端确认收到
  • 标签与设施选得随意,收集端按设施分流后消息落到别的文件里,排查时找不着
  • 把敏感信息写进日志消息,等于在日志系统里留了一份明文副本
  • 级别名或设施名写错会被当成无效值,消息可能按默认级别落盘,导致告警规则不触发

数据来源与参考

  • man 1 logger(util-linux)
  • RFC 5424(syslog 协议)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌