如何在Mac OS X中记录python程序活动

2024-04-26 18:11:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python编程很陌生,所以我有一个问题:

如何使用Mac OS X将Python应用程序活动记录到/var/log中?

我试过使用syslog模块,但它似乎没有写任何东西。我也试过使用日志模块,但总是遇到权限错误。

我该怎么做?

更新:

import logging
import time
LOG_FILENAME = "/var/log/writeup.log" + time.strftime("%Y-%m-%d")
LOG_FORMAT = "%(asctime)s - %(filename)s - %(levelname)s - %(message)s"
log = logging.getLogger("main.py")
log.setLevel(logging.DEBUG)
ch = logging.FileHandler(LOG_FILENAME)
ch.setLevel(logging.DEBUG)
format = logging.Formatter(LOG_FORMAT)
ch.setFormatter(format)
log.addHandler(ch)

Tags: 模块debugimportlogformattimevarlogging
3条回答

我找到了解决办法。MacOSX似乎没有记录任何低于log_ALERT的日志活动,所以这就是诀窍

import syslog
# Define identifier
syslog.openlog("Python")
# Record a message
syslog.syslog(syslog.LOG_ALERT, "Example message")

此消息记录在/var/log/system.log上

您可以在OSX上使用命令行工具“syslog”来获取所有syslog事件。

以下是一个指南,其中包含了大约5个步骤,您需要完成这些步骤—它们很简单,对我很有用:

http://vastdevblog.vast.com/blog/2012/04/18/using-syslogappender-on-os-x/

请密切注意此步骤,因为您必须在其中进行一些命令调用:

sudo /usr/libexec/PlistBuddy /System/Library/LaunchDaemons/com.apple.syslogd.plist

...

Command: Add :Sockets:NetworkListener dict
Command: Add :Sockets:NetworkListener:SockServiceName string "syslog"
Command: Add :Sockets:NetworkListener:SockType string "dgram"

相关问题 更多 >