Unix 将日志从文件转发到日志
我在隔离机器上有一个应用程序。例如,它将日志写入/var/log/app/log.txt。但是,我希望它将日志写入日志守护进程。但是,我无法更改应用程序的运行方式,因为它是封装的 我的意思是我不能做smth,比如Unix 将日志从文件转发到日志,unix,logging,centos,systemd,Unix,Logging,Centos,Systemd,我在隔离机器上有一个应用程序。例如,它将日志写入/var/log/app/log.txt。但是,我希望它将日志写入日志守护进程。但是,我无法更改应用程序的运行方式,因为它是封装的 我的意思是我不能做smth,比如app | systemd cat 1)所有服务都是以systemd向journald写入日志开始的,我说得对吗 2)如果是这样,由systemd启动的进程的子进程是否也会将日志写入journald 3)有没有办法告诉journald从特定文件中获取日志 4)如果没有,是否有任何解决方法
app | systemd cat
1)所有服务都是以systemd向journald写入日志开始的,我说得对吗
2)如果是这样,由systemd启动的进程的子进程是否也会将日志写入journald
3)有没有办法告诉journald从特定文件中获取日志
4)如果没有,是否有任何解决方法?警告:这未经测试 您可以将bind
/dev/stdout
装载到ExecStartPre
例如:
ExecStartPre=/use/sbin/mount --bind /dev/stdout /var/log/app/log.txt
ExecStartPre=/use/bin/ln -s /dev/stdout /var/log/app/log.txt
或软链接/dev/stdout
以登录ExecStartPre
例如:
ExecStartPre=/use/sbin/mount --bind /dev/stdout /var/log/app/log.txt
ExecStartPre=/use/bin/ln -s /dev/stdout /var/log/app/log.txt
4) 我只能尝试帮助解决以下问题:
MY_LOG_FILE=/var/log/app/log.txt
# Create a FIFO PIPE
PIPE=/tmp/my_fifo_pipe
mkfifo $PIPE
MY_IDENTIFIER="my_app_name" # just a label for later searching in journalctl
# Start logging to journal
systemd-cat -t $MY_IDENTIFIER -p info < $PIPE &
exec 3>$PIPE
tail -f $MY_LOG_FILE > $PIPE &
exec 3>&- #closing file descriptor 3 closes the fifo
MY_LOG_FILE=/var/LOG/app/LOG.txt
#创建FIFO管道
管道=/tmp/my_fifo_管道
mkfifo$管道
MY_IDENTIFIER=“MY_app_name”#只是一个标签,供以后在journalctl中搜索
#开始日志记录到日志
systemd cat-t$MY_标识符-p信息<$PIPE&
exec 3>$PIPE
tail-f$MY\u LOG\u FILE>$PIPE&
exec 3>关闭文件描述符3关闭fifo
这是最基本的想法,您现在应该考虑时间安排、何时需要启动以及何时停止。好的,我已经找到了前两个问题的答案1)是2)是