我正在尝试创建一个日志文件,该文件作为cmd中的尾部日志运行。 所以我只需要在完成后保存输出(用户点击输入),我无法弄清楚如何做到这一点..
这是我的代码
MS_log = the user's input
URL_logs = 'cf logs ' + MS_Log +' >'+ MS_Log + 'LOG.txt'
os.system(URL_log)
问题在于它会保存当前日志并且不允许我拖尾..
答案 0 :(得分:0)
您似乎对写入日志文件并从中读取文件感到困惑。
首先,将您想要的内容写入文件:
# open the file in 'a' ("append") mode to add to it after its end
with open('LOG.txt', 'a') as f:
f.write(MS_Log)
然后,以您想要的任何方式阅读日志文件,例如使用tail
命令。请注意,读取不会来自同一个脚本!
答案 1 :(得分:0)
使用python编写登录文件的更好方法是使用logging模块,您也可以像这样指定文件:
import logging
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')
答案 2 :(得分:0)
执行此操作的一个好方法是使用python logging,它可以一次登录到多个位置 - 包括文件和标准输出。
import logging
logger = logging.getLogger(__name__)
file_handler = logging.FileHandler('/path/to/file')
stdout_handler = logging.StreamHandler()
logger.addHandler(file_handler)
logger.addHandler(stdout_handler)
logger.warning('This will be written to file and to stdout')
默认情况下,记录器仅记录warning
及以上的消息。您可以将级别设置为较低以查看其他消息。
logger.setLevel(logging.DEBUG)
file_handler.setLevel(logging.DEBUG)
stdout_handler.setLevel(logging.DEBUG)
logger.debug('A debug message')
答案 3 :(得分:0)
cf CLI支持使用env var CF_TRACE文件的路径。
来自cf help
:
CF_TRACE = path / to / trace.log将API请求诊断附加到日志文件
注意,这会填满你的磁盘:
将以下内容放在.bash_profile中
export CF_TRACE=path/to/trace.log
在另一个shell中,tail -f path/to/trace.log
现在您可以运行命令并同时查看跟踪。