当前位置: 首页 > backend >正文

Linux中logger命令的使用方法详解

文章目录

  • 一、基础语法
  • 二、核心功能选项
  • 三、‌设施与优先级对照‌
    • 1. 常用设施(Facility)
    • 2. 优先级(Priority)从低到高:
    • 3. 组合示例‌
  • 四、典型使用场景
    • 1. 记录简单消息
    • 2. 带标签和优先级
    • 3. 记录命令输出
    • 4. 发送到远程服务器
    • 5. 脚本中的错误处理
  • 五、日志查看方法
  • 六、注意事项
    • ‌1. 权限要求‌:
    • ‌2. 性能影响‌:
    • 3‌. 优先级策略‌:
  • 七、高级技巧‌
    • 1‌. 结构化日志‌:
    • 2.多行日志‌:
    • 3. 自动清理‌:

以下是 Linuxlogger 命令的详解和使用指南:

一、基础语法

logger [选项] [消息内容]

二、核心功能选项

选项描述示例
-t TAG指定日志标签logger -t “MyApp” “Process started”
-p PRIORITY指定设施和优先级(facility.level)logger -p local0.err “Error occurred”
-i记录进程ID(PID)logger -i “Service shutdown”
-s ‌同时输出到终端和系统日志‌logger -s “Debug info”
-f FILE ‌读取文件内容作为日志消息‌logger -f /tmp/error.log
-n HOST发送日志到远程syslog服务器logger -n 192.168.1.100 “Remote log”
-P PORT指定远程服务器端口(默认514)logger -n 192.168.1.100 -P 10514
-d使用UDP协议发送(默认)logger -d -n 192.168.1.100
-T使用TCP协议发送logger -T -n 192.168.1.100

三、‌设施与优先级对照‌

1. 常用设施(Facility)

kern, user, mail, daemon, auth, syslog, lpr, news, uucp, cron, authpriv, ftp, local0-local7

2. 优先级(Priority)从低到高:

debug, info, notice, warning, err, crit, alert, emerg

3. 组合示例‌

-p local3.warning 表示使用 local3 设施 + warning 级别

四、典型使用场景

1. 记录简单消息

logger "Backup job completed"  # 默认使用user.notice级别

2. 带标签和优先级

logger -t "Security" -p auth.warning "非法登录尝试 detected"

3. 记录命令输出

df -h | logger -t "DiskMonitor" -p local0.info

4. 发送到远程服务器

logger -n logs.example.com -P 5140 -T "重要事件记录"

5. 脚本中的错误处理

#!/bin/bash
if [ ! -f "/data/config.yaml" ]; thenlogger -t "InitScript" -p local0.err "配置文件缺失,退出代码127"exit 127
fi

五、日志查看方法

# Systemd 系统
journalctl -t "MyApp" --since "10 minutes ago"# 传统系统
tail -f /var/log/syslog | grep "YourTag"
grep "CRITICAL" /var/log/messages

六、注意事项

‌1. 权限要求‌:

  • 发送到 auth/authpriv 设施需要 root 权限
  • 远程日志需配置目标服务器的 /etc/rsyslog.conf

‌2. 性能影响‌:

  • 频繁调用可能产生IO压力,批量日志建议优先写入本地文件

3‌. 优先级策略‌:

  • 生产环境避免滥用 debug 级别(可通过 -p 过滤)

七、高级技巧‌

1‌. 结构化日志‌:

logger -t "API" "status_code=403 client_ip=172.16.1.2 path=/admin"

2.多行日志‌:

logger -t "Kernel" "$(dmesg | tail -n 5)"

3. 自动清理‌:

# 按时间清理旧日志
journalctl --vacuum-time=7d

更多信息建议通过 man logger 查看完整手册,不同发行版可能有细微差异(如 BSD 系支持 -u 指定 socket

http://www.xdnf.cn/news/9085.html

相关文章:

  • 嵌入式开发STM32 -- 江协科技笔记
  • window 显示驱动开发-呈现开销改进(二)
  • c++进阶——智能指针
  • maven中的grpc编译插件protobuf-maven-plugin详解
  • SQL进阶之旅 Day 4:子查询与临时表优化
  • C/C++语言中成双成对出现的都有哪些?
  • STM32程序运行不了,仿真功能也异常,连断点和复位都异常了
  • 网络流学习笔记(基础)
  • Beckhoff PLC 功能块 FB_CTRL_ACTUAL_VALUE_FILTER (模拟量滤波)
  • vSphere 7.0 client 提示HTTP状态 500- 内部服务器错误
  • GROUP BY SQL
  • 【动态规划】子数组系列(一)
  • 【备战秋招】C++音视频开发经典面试题整理
  • 学校住宿管理系统——仙盟创梦IDE
  • OpenGL Chan视频学习-7 How I Deal with Shaders in OpenGL
  • 0基础学习Linux之揭开朦胧一面:环境基础开发工具
  • java8函数式接口(函数式接口的匿名实现类作为某些方法的入参)
  • 2025年5月系统架构设计师考试真题回忆版
  • 7.安卓逆向2-frida hook技术-介绍
  • 重学计算机网络之命令整理
  • 数据加密技术:守护网络通信安全的基石
  • ceph 报错 full ratio(s) out of order
  • Elasticsearch数据同步方案
  • VS Code设置Dev Containers: Reopen in Container
  • MongoDB基础知识(浅显)
  • docker compose yml 启动的容器中,如何使用linux环境变量赋值
  • Python 进阶学习
  • [CSS3]rem移动适配
  • *HTML `<script>` 标签中的核心属性解析:掌控脚本加载与执行的艺术
  • 力扣HOT100之回溯:79. 单词搜索