Подтвердить что ты не робот

Как зарегистрировать активность программы python в Mac OS X

Я новичок в программировании на Python, поэтому у меня есть этот вопрос:

Как я могу зарегистрировать активность приложения Python в /var/log с Mac OS X?

Я попытался использовать модуль syslog, но он ничего не пишет. Я также пытался использовать модуль регистрации, но всегда сталкивался с ошибкой разрешения.

Как я могу это сделать?

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)
4b9b3361

Ответ 1

Я нашел решение. Кажется, что 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

Ответ 2

Вы можете использовать инструмент командной строки syslog для os x, чтобы получить все события syslog.

Ответ 3

Вот руководство с примерно 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"

Ответ 4

проблема заключается в том, что учетная запись, на которой выполняется script, так как не имеет разрешения на запись /var/log

Я не знаю об особенностях OS X, но я думаю, что syslog.syslog("message") должен печатать что-то вроде (если оно действует так, как в Linux) Feb 11 14:27:47 hostname python: message до /var/log/messages