Как изменить формат времени системы ведения журнала, используемой в TwistedMatrix?Изменение формата времени внутри журнала скрученной матрицы
я заметил из http://twistedmatrix.com/trac/browser/tags/releases/twisted-11.0.0/twisted/python/log.py#L389 что один должен иметь возможность изменить TimeFormat, но он не работает для меня, вот моя полная программа тест, который я исполняю python myscript.py
from twisted.internet import endpoints, reactor
from twisted.python import log
from twisted.application.service import Application
from twisted.python.log import ILogObserver, FileLogObserver
from twisted.python.logfile import DailyLogFile
#[... here my definition of a ProxyFactory()...]
application = Application("myapp")
logfile = DailyLogFile("my.log", './')
flo = FileLogObserver(logfile)
flo.timeFormat = "%Y-%m-%d %H:%M:%S,%f%z"
application.setComponent(ILogObserver, flo.emit)
log.startLogging(logfile)
log.msg("this is a test")
endpoint = endpoints.serverFromString(reactor, portstr)
d = endpoint.listen(ProxyFactory())
d.addErrback(shutdown, reactor)
reactor.run()
не получают Ожидаемый результат: "% Y-% m-% d% H:% M:% S% F% г" (миллисекунды)
2013-06-12 17:08:07+0200 [-] Log opened.
2013-06-12 17:08:12+0200 [-] this is a test
что я не хватает?
также:
- как я должен продолжить, чтобы изменить этот формат время, когда я не нужен файл протоколирования, но только Stderr печать?
(другая ссылка: http://twistedmatrix.com/trac/ticket/3513)
EDIT: я попытался перефразировать мои два вопроса.
поэтому из ответа, отправленного JeanPaul, я понимаю, что я смешивал вещи и классический файл python с другим файлом tac
(который я не знаю, прежде чем читать JeanPaul). КСТАТИ я попробовал эту ниже, и до сих пор не получаю миллисекунды мне нужно:
(на этот раз я запуск twistd -noy my.tac
)
from twisted.application.service import Application
from twisted.python.log import ILogObserver, FileLogObserver
from twisted.python.logfile import DailyLogFile
application = Application("myapp")
logfile = DailyLogFile("my.log", "./")
flo = FileLogObserver(logfile)
flo.timeFormat = "%Y-%m-%d %H:%M:%S,%f %z"
application.setComponent(ILogObserver, flo.emit)
и получите:
2013-06-13 17:23:23,%f+0000 [-] Log opened.
2013-06-13 17:23:23,%f+0000 [-] using set_wakeup_fd
2013-06-13 17:23:23,%f+0000 [-] twistd 12.0.0 (/usr/bin/python 2.7.3) starting up.
2013-06-13 17:23:23,%f+0000 [-] reactor class: twisted.internet.pollreactor.PollReactor.
2013-06-13 17:23:30,%f+0000 [-] Received SIGINT, shutting down.
2013-06-13 17:23:30,%f+0000 [-] Main loop terminated.
2013-06-13 17:23:30,%f+0000 [-] Server Shut Down.
, как вы можете видеть, если i имитирую, что сделано @http://twistedmatrix.com/trac/browser/trunk/twisted/python/log.py#L351, см. строку 367, питон и время дают мне миллисекунды. Уведомление также% Z неправильно это должно быть +0200, но я буду в состоянии жить с этим в то время как мне нужно миллисекунды ...
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> datetime.datetime.now().strftime("%H:%M:%S.%f")
'17:28:06.566135'
>>> import time
>>> when = time.time()
>>> import datetime
>>> datetime.datetime.fromtimestamp(when).strftime("%Y-%m-%d %H:%M:%S,%f%z")
'2013-06-13 17:33:20,535350'
>>> import twisted
>>> twisted.version
Version('twisted', 12, 0, 0)
пожалуйста, что это 'tac' файл? На самом деле я действительно скучаю по правильному примеру. – user2468222
Файл 'tac' - это то, что вы написали. Это файл синтаксиса Python, который определяет глобальное имя 'application' (и это не называется' reactor.run'). –
ОК, поэтому есть недоразумение, так как моя программа - это то, что я написал в первую очередь, но она содержит также, где я помещаю [...] многие другие мои собственные классы, а затем завершает работу с реакторной частью в том же файле. Я просто удалю ненужные части для моего вопроса о журнале. – user2468222