众所周知,我们可以使用以下命令将错误重定向到特定文件:
./some_script 2>error_log
我正在运行多个脚本,并希望他们将错误放入单个错误文件中。
有没有办法在每个错误实例前面附加信息,例如脚本名称?这样,错误日志可以记录,例如,发布错误的脚本名称等。
众所周知,我们可以使用以下命令将错误重定向到特定文件:
./some_script 2>error_log
我正在运行多个脚本,并希望他们将错误放入单个错误文件中。
有没有办法在每个错误实例前面附加信息,例如脚本名称?这样,错误日志可以记录,例如,发布错误的脚本名称等。
为您的脚本创建一个错误日志函数。就像是:
然后你从你的脚本中调用它,比如:
每次使用
2>error_log
都会覆盖。error_log
您需要使用2>>error_log
附加。如果您希望能够从其他命令中捕获错误并将它们记录在错误日志中,您可以将它们组合在一起,如下所示:
确保您将标准输出重定向到您需要的任何适用位置。
这将允许
logerr
脚本在打开时从标准输入读取(允许您将程序通过管道传输到 loggerr)。问题是程序会将错误消息发送到 stderr,而您希望它与 stdin 保持分离。建立在这里的讨论加上这个:
https ://stackoverflow.com/questions/2342826/how-to-pipe-stderr-and-not-stdout
为了添加我们想要的任何东西。我们需要能够管道错误流(fd2)。唯一的可管道输出是 fd1。所以fd2需要重定向到fd1。我们还必须摆脱 fd1,这样它就不会碍事。