gpt4 book ai didi

linux - 使用 "logger"登录到单独的日志文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:00:06 25 4
gpt4 key购买 nike

我正在运行一个小脚本来在我的树莓派上自动启动一个 node.js 服务。出于这个原因,我从我的/etc/rc.local 的末尾调用它,就在导出 0 之前。

脚本正在启动,没问题。

现在,我的脚本如下所示:

#!/bin/bash
echo "Node.js starting..."
LOGFILE=log_`date +%b%d%H%M%S`.log
sudo /opt/node/bin/node /home/pi/www/js/script.js > /home/pi/node_logs/$LOGFILE

但我想改用记录器。我试了一下但失败了。谁能向我解释如何“绑定(bind)”记录器以仅将 node.js 的输出记录到此日志文件中?我想我真的误解了记录器的工作方式,因为我真的不是 Linux 专业人士:-/

最佳答案

logger 只记录到 syslog - 如果你真的想用这种方式做事,那么你必须先编辑你的 syslog.conf 文件并添加类似这个:

# node.js logging
local5.* /home/pi/logs/nodejs.log

local5 是一个预定义的工具,确保它没有在您的系统日志配置中的其他地方使用。现在您需要重新启动系统日志服务:

/etc/init.d/syslog stop; /etc/init.d/syslog start

现在您可以使用logger 来记录您的消息:

sudo /opt/node/bin/node /home/pi/www/js/script.js | logger -p local5.info

要为每个日期创建不同的日志文件,您必须使用类似 logrotate 的工具。

另一种(更好的)解决方案是在记录之前为每一行添加时间戳:

while read msg; do
echo -n "[$(date +"%d/%m/%Y %H:%M:%S")] " >> "$LOGFILE"
echo "$msg" >> "$LOGFILE"
done < <(sudo /opt/node/bin/node /home/pi/www/js/script.js)

关于linux - 使用 "logger"登录到单独的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23127360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com