linux - bash 记录器中的自定义日志格式
问题描述
我有这样的默认日志格式:
+ logger --stderr '[START]'
<13>Jun 29 13:10:02 ada: [START]
但我需要这样的东西:
+ logger --stderr '[START]'
2018-06-29 11:11:43,524 1 INFO ada: [START]
我已经咨询过man logger
,但没有关于如何做自定义时间戳的说明。我希望有类似的东西:
+ export LOGGER_FORMAT="{year}-{date}-{month} ... {level} {user}: {message}"
+ logger --stderr '[START]'
2018-06-29 11:11:43,524 1 INFO ada: [START]
有这样的事情吗?
journalctl 已经做得很好,它从logger
命令接收消息。这是如何运作的?
journalctl
-- Logs begin at Tue 2015-02-03 21:48:52 UTC, end at Tue 2015-02-03 22:29:38 UTC. --
Feb 03 21:48:52 localhost.localdomain systemd-journal[243]: Runtime journal is u
解决方案
logger
生成具有标准格式的系统日志消息。时间戳有一种被禁止的格式,以便系统日志工具能够解析它。它不能也不应该改变。
systemd 日志在生成 syslog 消息时对其进行解释,解析每个部分并将其以自定义格式存储在其内部数据库中。如果您想以不同的方式打印日志消息,您可以执行相同的操作:阅读 syslog 消息的格式,编写脚本或正则表达式以提取组件片段,然后以您喜欢的方式打印出来。
推荐阅读
- python - 如何将输出值转换为字典
- c# - 如何将数组随机分配到较小的数组?
- css - 混合混合模式与 2 个重叠 div 但需要排除文本
- activemq - 使用 Spring、JMS 和 ActiveMQ 进行消费者驱动的合同测试
- angular - 确保在注入提供程序之前初始化静态变量
- javascript - 在 node.js 中调用一个有 promise 的函数
- android - 改造 Gson 序列化在三星 S9 设备上无法正常工作
- python - 从字典关键字创建变量
- r - 从 UTF-8 字符串中删除不可见字符
- firebase - Ionic 3 Firebase Google Auth 重定向到本地主机而不是应用程序