Я довольно плохо знаком с Python, программируя, таким образом, у меня есть этот вопрос:
Как я могу зарегистрировать активность приложения Python в/var/log с Mac OS X?
Я пытался использовать модуль системного журнала, но это, кажется, ничего не пишет. Я попробовал также регистрирующимся модулем, но я всегда сталкиваюсь с ошибкой разрешения.
Как я могу сделать это?
Обновление:
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)
string.Compare («+», «-»); последовательность. Сравнить («+», «-», StringComparison.CurrentCulture); последовательность. Сравнить («+», «-», StringComparison.InvariantCulture); последовательность. Сравнить («+», «-», StringComparison.InvariantCultureIgnureCase); //Весь пропуск
эти два значения равны, так как при этом учитывается ингуизитическая оболочка
FIX:
заменить инвариантное сравнение порядковым. Это означает, что решения основаны на простых сравнениях байтов и игнорируют таблицы обсадных труб или эквивалентности, которые параметризуются культурой.
ссылка: Используйте порядковый номер StringComparison
-121--2467910-последовательностей .Compare («+», «-», StringComparison.Ordinal) ;//fail
Прежде всего, элемент input
не должен иметь закрывающего тэга (от http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT : End тэга: запрещено
).
Во-вторых, вам нужна функция after ()
, а не append ()
.
Я нашел решение. Похоже, что 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
проблема в том, что учетная запись, в которой выполняется сценарий, не имеет разрешения на запись в / var / log
Я не знаю насчет особенностей OS X, но я предполагаю, что syslog.syslog ("message")
должен напечатать что-то вроде (если он действует так же, как в Linux)
11 февраля 14: 27:47 имя хоста python: сообщение
на / var / log / messages