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

17 投票
4 回答
15430 浏览
提问于 2025-04-15 19:08

我刚开始学习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文件里。

撰写回答