要将STDOUT和STDERR转到终端和日志文件,您可以使用以下方法:
在Linux和Unix系统中,可以使用文件描述符重定向将STDOUT和STDERR输出到终端和日志文件。以下是一个示例:
#!/bin/bash
exec > >(tee -a /var/log/myapp.log) 2>&1
echo "This is a STDOUT message"
echo "This is a STDERR message" >&2
在这个示例中,我们使用tee
命令将STDOUT和STDERR重定向到终端和日志文件。exec
命令用于将当前shell的输出重定向到tee
命令。tee
命令将输入写入文件并将其发送到标准输出,这样我们可以在终端中看到输出,同时也将其写入日志文件。
在编程中,您可以使用日志库将STDOUT和STDERR输出到终端和日志文件。例如,在Python中,您可以使用logging
库:
import logging
logging.basicConfig(filename='/var/log/myapp.log', level=logging.DEBUG)
print("This is a STDOUT message")
logging.info("This is a STDOUT message")
print("This is a STDERR message", file=sys.stderr)
logging.error("This is a STDERR message")
在这个示例中,我们使用logging
库将STDOUT和STDERR输出到终端和日志文件。basicConfig
函数用于配置日志记录器,filename
参数指定日志文件的路径,level
参数指定日志级别。我们使用print
函数输出STDOUT和STDERR消息,并使用logging
库的info
和error
函数将它们记录到日志文件中。
总之,要将STDOUT和STDERR转到终端和日志文件,您可以使用文件描述符重定向或日志库。这些方法可以确保您的应用程序输出可以同时显示在终端和日志文件中,方便调试和监控。
云+社区技术沙龙[第20期]
Elastic 中国开发者大会
新知·音视频技术公开课
云+社区技术沙龙[第9期]
云+社区技术沙龙[第17期]
GAME-TECH
云+社区技术沙龙[第14期]
GAME-TECH
云+社区技术沙龙[第5期]
serverless days
领取专属 10元无门槛券
手把手带您无忧上云