Linux logger命令

参考资料

  1. Linux logger 命令

目录

  • [一. 简介](#一. 简介)
  • [二. 最基本的用法](#二. 最基本的用法)
  • [三. 配置项参数](#三. 配置项参数)
    • [3.1 `-p` 日志优先级](#3.1 -p 日志优先级)
      • [3.1.1 设施(Facility)类型](#3.1.1 设施(Facility)类型)
      • [3.1.2 日志级别(Level)](#3.1.2 日志级别(Level))
      • [3.1.3 常见的`-p`用法对照](#3.1.3 常见的-p用法对照)
      • [3.1.4 实践](#3.1.4 实践)
    • [3.2 `-t` 或 `--tag` 日志标签](#3.2 -t--tag 日志标签)
    • [3.3 `-s` 同时将消息输出到终端显示](#3.3 -s 同时将消息输出到终端显示)
  • [四. 小案例](#四. 小案例)

一. 简介

loggerLinux / Unix 系统中用于向系统日志写入日志的命令行工具,本质上是 syslog / journald 的命令行接口。

常用于 脚本、cron、systemd 服务 中记录运行信息。

🔷常用的配置项参数

选项 说明
-p, --priority <优先级> 指定日志优先级(facility.level)
-t, --tag <标签> 使用指定标签标记日志条目
-i, --id 在每行日志中包含进程ID
-f, --file <文件> 从指定文件读取日志内容
-s, --stderr 同时将日志输出到标准错误
-n, --server <主机> 将日志发送到远程 syslog 服务器
-P, --port <端口> 指定远程 syslog 服务器端口
-u, --socket <套接字> 指定 Unix 域套接字而非默认设备
-d, --udp 使用 UDP 协议发送日志(默认)
-T, --tcp 使用 TCP 协议发送日志
-h, --help 显示帮助信息
-V, --version 显示版本信息

二. 最基本的用法

  • 使用logger命令向系统日志中写入数据,然后就可以使用journalctl命令检索到写入的数据
bash 复制代码
apluser@ubuntu24-01:~$ logger "Hello World 1"
apluser@ubuntu24-01:~$
apluser@ubuntu24-01:~$ echo "Hello World 2" | logger
apluser@ubuntu24-01:~$
apluser@ubuntu24-01:~$ journalctl | grep Hello
Dec 30 21:12:56 ubuntu24-01 apluser[98065]: Hello World 1
Dec 30 21:13:10 ubuntu24-01 apluser[98067]: Hello World 2

三. 配置项参数

3.1 -p 日志优先级

⏹日志优先级由 facility(设施)和 level(级别)两部分组成,格式为 facility.level

3.1.1 设施(Facility)类型

设施代码 数字 说明
user 1 用户级消息(默认
auth 4 安全/授权消息
daemon 3 系统守护进程
cron 9 定时任务守护进程
syslog 5 syslogd 内部消息
authpriv 10 私有授权消息
kern 0 内核消息
lpr 6 打印系统
mail 2 邮件系统
news 7 新闻系统
local0-7 16 ~ 23 自定义本地使用

3.1.2 日志级别(Level)

级别代码 说明 数值
emerg 系统不可用 0
alert 需要立即采取行动 1
crit 关键条件 2
err 错误条件 3
warning 警告条件 4
notice 正常但重要的情况 5
info 信息性消息 6
debug 调试级消息 7

3.1.3 常见的-p用法对照

需求 正确写法
info 及以上(更严重) -p info
只看 info -p info..info
warning 及以上 -p warning
err 到 alert -p err..alert
debug 全部 -p debug

3.1.4 实践

⏹写入内容到系统日志中

bash 复制代码
apluser@ubuntu24-01:~$ logger -p user.err  "something wrong"
apluser@ubuntu24-01:~$ logger -p auth.err  "something wrong"
apluser@ubuntu24-01:~$ logger -p user.err  "something wrong1"
apluser@ubuntu24-01:~$ logger -p auth.err  "something wrong2"
apluser@ubuntu24-01:~$ logger -p auth.info  "something wrong2"
apluser@ubuntu24-01:~$ logger -p user.info  "something wrong3"
  • 查看今天的设施(Facility)为user,并且日志级别(Level)为info以及以上,
    可以看到,不仅info级别的log可以被检索到,error级别的log也一样被检索到。
bash 复制代码
apluser@ubuntu24-01:~$ journalctl SYSLOG_FACILITY=1 -p info --since today
Dec 31 08:33:30 ubuntu24-01 apluser[99836]: something wrong
Dec 31 08:56:59 ubuntu24-01 apluser[100183]: something wrong1
Dec 31 08:59:08 ubuntu24-01 apluser[100210]: something wrong3
  • 只检索今天的设施(Facility)为user,并且日志级别(Level)为info的log。
bash 复制代码
apluser@ubuntu24-01:~$ journalctl SYSLOG_FACILITY=1 -p info..info --since today
Dec 31 08:59:08 ubuntu24-01 apluser[100210]: something wrong3
  • 只检索今天的设施(Facility)为auth,并且日志级别(Level)为err的log。
bash 复制代码
apluser@ubuntu24-01:~$ journalctl SYSLOG_FACILITY=4 -p err..err --since today
Dec 31 08:33:39 ubuntu24-01 apluser[99837]: something wrong
Dec 31 08:56:59 ubuntu24-01 apluser[100184]: something wrong2

3.2 -t--tag 日志标签

⏹带着标签将指定内容写入到日志之后,journalctl命令可使用-t配置项进行检索。

bash 复制代码
apluser@ubuntu24-01:~$ logger -t mpl_tag "task finished1"
apluser@ubuntu24-01:~$
apluser@ubuntu24-01:~$ logger -t mpl_tag "task finished2"
apluser@ubuntu24-01:~$
apluser@ubuntu24-01:~$ journalctl -t mpl_tag
Dec 31 09:11:36 ubuntu24-01 mpl_tag[100375]: task finished1
Dec 31 09:11:42 ubuntu24-01 mpl_tag[100380]: task finished2

3.3 -s 同时将消息输出到终端显示

bash 复制代码
apluser@ubuntu24-01:~$ logger -t mpl_tag -s "task finished3"
<13>Dec 31 09:22:20 mpl_tag: task finished3
apluser@ubuntu24-01:~$
apluser@ubuntu24-01:~$ journalctl -t mpl_tag
Dec 31 09:11:36 ubuntu24-01 mpl_tag[100375]: task finished1
Dec 31 09:11:42 ubuntu24-01 mpl_tag[100380]: task finished2
Dec 31 09:22:20 ubuntu24-01 mpl_tag[100515]: task finished3

四. 小案例

⏹Bash 脚本记录执行过程

bash 复制代码
#!/bin/bash
TAG="backup"

logger -t "$TAG" "backup started"

if cp -r /data /backup; then
    logger -t "$TAG" "backup success"
else
    logger -p user.err -t "$TAG" "backup failed"
fi

⏹cron 任务日志

bash 复制代码
0 2 * * * /path/script.sh 2>&1 | logger -t cron-backup
相关推荐
DO_Community6 分钟前
DigitalOcean 打造 AI 原生云,帮助 AI 应用大幅降低成本与运维复杂度
运维·人工智能·agent·claude
实心儿儿10 分钟前
Linux —— 文件系统_路径解析_软硬连接
linux·运维·服务器
zzzb12345614 分钟前
CC-Switch 全平台下载、安装与使用全指南(Windows/macOS/Linux)
linux·windows·macos·ai编程·cc-switch
云达闲人14 分钟前
搭建DevOps企业级仿真实验环境:005Proxmox Web 界面操作入门
运维·devops·proxmox ve·web界面·虚拟机创建
云达闲人16 分钟前
搭建DevOps企业级仿真实验环境:004Proxmox 内核调优与虚拟化优化
linux·服务器·devops·硬件加速·linux内核调优·虚拟化优化·内存气球
探序基因18 分钟前
单细胞转录组Seurat去批次-FastMNN算法及大细胞量评测
linux·算法
Lugas Luo18 分钟前
识别DDR故障的“数据总线测试算法”
linux·嵌入式硬件
运维老郭25 分钟前
Kubernetes Ingress Controller完全指南:7种选型对比+Istio集成+Gateway API迁移
运维·云原生·kubernetes
BetterNow.26 分钟前
安卓内存Previous为什么可以算进freeRam
android·linux·安卓·安卓性能·安卓内存
Elastic 中国社区官方博客30 分钟前
Kibana 中的查询活动:用于长时间运行搜索的实时控制塔
大数据·运维·elasticsearch·搜索引擎·全文检索·kibana