开发者

How to log python program activity in Mac OS X

开发者 https://www.devze.com 2022-12-19 17:31 出处:网络
I\'m pretty 开发者_运维百科new to Python programming so I have this question: How can I log a Python application activity into /var/log with Mac OS X?

I'm pretty 开发者_运维百科new to Python programming so I have this question:

How can I log a Python application activity into /var/log with Mac OS X?

I tried using syslog module, but it does not seem to write anything. I tried also with the logging module, but I always run into a permission error.

How can I do it?

Update:

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)


I found the solution. It seems that Mac OS X does not record any log activity lower than LOG_ALERT, so this does the trick

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

This message is recorded on /var/log/system.log


You can use the command line tool "syslog" on os x, to get all syslog events.


Here's a guide with about 5 steps you need to complete - they're straightforward, and it worked for me:

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

Pay close attention to this step, as you have to make a few command calls there:

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"


the problem is that the account you are running the script as does not have write permission to /var/log

I do not know about OS X specifics, but I guess that syslog.syslog("message") should print something like (if it acts the way it does in Linux) Feb 11 14:27:47 hostname python: message to /var/log/messages

0

精彩评论

暂无评论...
验证码 换一张
取 消