我有一个使用日志记录模块将数据输出到文本文件的python程序,我遇到的问题是当我在 PyCharm 中运行脚本时,文本文件的输出正常工作( 1-10值输出到控制台屏幕并写入 Log_Test_File.txt ),但是当我从命令行运行脚本时,只显示控制台输出(没有写入*。 txt文件)。这在Ubuntu
或Raspberry Pi
上都会发生。
我将在启动时自动运行Pi
上的脚本(作为sudo),有没有办法配置Pi
或脚本,以便文本输出正常工作?
#!/usr/bin/python
# -*- coding: utf-8 -*-
import logging
logging.basicConfig(filename="Log_Test_File.txt",
level=logging.DEBUG,
format='%(levelname)s: %(asctime)s %(message)s',
datefmt='%m/%d/%Y %I:%M:%S')
i=0
while i<10:
logging.info("Logging test: {}".format(i))
i+=1
答案 0 :(得分:1)
您提供的代码运行良好。
如果您在查找正确创建日志文件时遇到问题,原因可能是:
如果您计划将脚本作为长时间运行的服务运行,我建议您跳过创建显式日志文件,而不是登录到stdout。发送到stdout的输出很容易通过程序控制脚本的执行(例如supervisord,systemd等)来查看,捕获和处理。
另一种选择是直接登录到syslog,但这可能会变得更加复杂,因为你的程序必须自己知道,用什么值来识别进程。对于程序本身而言,这对于流程管理器来说大多简单。