gue*_*tli 16 python logging systemd
我logging.info()想去journald(systemd).
到目前为止,我只发现了读取journald(不是我想要的)的python模块或者像这样工作的模块: journal.send('Hello world')
mar*_*neg 24
python-systemd有一个可以与日志框架一起使用的JournalHandler.
从文档:
import logging
from systemd.journal import JournalHandler
log = logging.getLogger('demo')
log.addHandler(JournalHandler())
log.setLevel(logging.INFO)
log.info("sent to journal")
Run Code Online (Sandbox Code Playgroud)
作为官方软件包的替代品,systemd软件包可以与python 3.6一起使用.它的来源也在github上.
实现是官方库的镜像,有一些小的改动:
import logging
from systemd import journal
log = logging.getLogger('demo')
log.addHandler(journal.JournaldLogHandler())
log.setLevel(logging.INFO)
log.info("sent to journal")
Run Code Online (Sandbox Code Playgroud)
或者更简短的方法:
from systemd import journal
journal.write("Hello Lennart")
Run Code Online (Sandbox Code Playgroud)
这是一个没有第三方模块的解决方案。它对我来说效果很好,消息显示在日志中。
import logging
import sys
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# this is just to make the output look nice
formatter = logging.Formatter(fmt="%(asctime)s %(name)s.%(levelname)s: %(message)s", datefmt="%Y.%m.%d %H:%M:%S")
# this logs to stdout and I think it is flushed immediately
handler = logging.StreamHandler(stream=sys.stdout)
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.info('test')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13653 次 |
| 最近记录: |