情况
我正在 Linux 上运行一个程序,它会生成一个很多详细的日志到stdout
。
程序本身通过使用设施进入后台systemd.service
。
到目前为止,我已将程序配置为仅将主要日志级别存储到磁盘(使用syslog
或读取journalctl
),并继续将次要、详细日志打印到stdout
.
有一个非常可靠的应用程序叫做重定向这可以让我重新连接到详细日志记录 pty。
因此,每当程序中发生一些不当行为时,我都可以将自己重新连接到该 pty,并调查详细日志以了解正在发生的情况。
问题
我已将架构更改为架构64并且重定向似乎在此平台上不可用。
可能的解决方案
- 将所有详细日志保存到磁盘并像往常一样检查它们:不行,因为详细日志确实很大,会给存储带来压力,或者如果我将其安装到
tmpfs
,它可能会旋转(因为它很大),并且我会早点丢失,比较重要的主要日志。 - 在伪 tty 中启动它:浪费资源,因此我不知道 systemd.service 与 screen 或 tmux 一起使用的可行性。
大多数时候,我只需要主要日志。我每周或每两周检查一次。
但是,当发生奇怪的行为时,我需要深入研究详细的日志。重新启动应用程序不是一个选项,因为我会丢失不当行为,日志也会丢失。
那么,如何将我当前的 pty 重新连接到 aarch64 上自定义应用程序的默认 pty?
答案1
您可以将详细日志从程序发送到文件,并将它们从文件注入到系统日志中。经常轮换该文件。从 syslog 将具有不同优先级的日志消息过滤到不同的文件中,并根据您的偏好轮换这些文件。