如何在Mac OS X中记录Python程序活动
我刚开始学习Python编程,所以有个问题想请教:
我该如何在Mac OS X上把Python应用的活动记录到/var/log这个地方呢?
我试过用syslog模块,但好像什么都没写进去。我也试过用logging模块,但总是遇到权限错误。
我该怎么做呢?
更新:
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)
4 个回答
1
这里有一个大约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"
1
你可以在Mac电脑上使用命令行工具“syslog”,来查看所有的系统日志事件。
28
我找到了解决办法。看起来Mac OS X系统不会记录低于LOG_ALERT级别的日志活动,所以这样做就解决了问题。
import syslog
# Define identifier
syslog.openlog("Python")
# Record a message
syslog.syslog(syslog.LOG_ALERT, "Example message")
这个信息会被记录在/var/log/system.log文件里。