- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此代码使用 syslog
模块记录到 syslog:
import syslog
syslog.syslog(syslog.LOG_ERR, 'a')
下面是使用 logging
模块的等效代码:
import logging
from logging.handlers import SysLogHandler
logger = logging.getLogger()
logger.addHandler(SysLogHandler(address='/dev/log'))
logger.setLevel(logging.ERROR)
logger.error('a')
如果我在第二个片段中遗漏了 address
参数,它不会执行任何操作。为什么 logging
版本需要我指定一个地址,而 syslog
模块可以自行解决?
我宁愿不必指定此路径,因为它依赖于平台。我是否必须编写自己的 SysLogHandler 版本来委托(delegate)给 syslog
模块?
最佳答案
syslog.syslog
API 允许您仅将事件发送到本地计算机上的系统记录器,而通过在 Python 日志记录中指定地址,您不仅可以记录到本地计算机,还可以记录到远程 syslog
服务器。因此,日志记录方法涵盖了比 syslog.syslog
更广泛的情况。另请注意,在某些平台/某些环境中,syslog.syslog
并不总是线程安全的(过去),因为底层系统调用 API 在这些环境中不是线程安全的。这可能不再是这种情况,但最好检查您平台上的 syslog
文档。有关更多背景信息,请参阅 this Python issue .
此外,您还可以使用日志记录 API(syslog
模块在 Windows 上不可用)从 Windows 计算机登录到 syslog
服务器。
关于python - 为什么 Python 的 SysLogHandler 需要一个地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31487516/
我正在尝试使用 python 日志记录模块将消息记录到远程 rsyslog 服务器。消息已收到,但它会将每条消息的消息连接在一行中。这是我的代码示例: to_syslog_priority: dict
已关注 advice ,我计划将多个时间关键的 python 进程(客户端)的错误记录到单个日志记录进程(服务器)。 SysLogHandler似乎是正确的选择,因为它使用 UDP(我宁愿与系统无关)
我尝试使用 logging.handlers.SysLogHandler 进行日志记录并将其发送到 logstash。 Python代码: import logging from logging im
我试图理解为什么 Python 的日志记录框架 (logging.handlers) 中的 SyslogHandler 类没有实现 RFC 6587 描述的任何框架机制: 八位字节计数:它将消息长度“
我正在编写一个应用程序,它使用 logging 模块和 logging.StreamHandler( ) 和 logging.handlers.SysLogHandler(address='/dev/
我正在研究如何从我的 Python 应用程序中登录到 syslog,我发现有两种方法: 使用 syslog.syslog()例行公事 使用记录器模块SysLogHandler 哪个是最好的选择,每个的
我正在使用 python sysloghander 将日志发送到集中式系统日志服务器。该代码正在运行,但我在自定义格式时遇到了一些问题。下面是我写的代码。 #!/usr/bin/python impo
此代码使用 syslog 模块记录到 syslog: import syslog syslog.syslog(syslog.LOG_ERR, 'a') 下面是使用 logging 模块的等效代码: i
我无法让 SysLogHandler 工作,这让我抓狂。 这是我的代码: import logging import logging.handlers logger = loggin
为了将“myapp”的日志消息写入/var/log/local5.log,我使用SysLogHandler . 问题 “myapp”运行良好,没有错误,但没有记录任何内容,/var/log/local
我正在尝试配置 Python 应用程序以使用标准 Linux 系统日志记录到/var/log/messages。但是,当我尝试创建系统日志处理程序时,出现错误 socket.error: [Errno
我有一个进程使用 logging.SyslogHandler 通过 TCP 将日志发送到系统日志服务器。不幸的是,如果系统日志服务器由于某种原因重新启动,进程将停止发送日志并且无法重新建立连接。 我想
我使用 logging.fileConfig() 配置了日志记录。我有一个根记录器转到使用 SysLogHandler('/dev/log', handlers.SysLogHandler.LOG_U
当我在我的 mac 上运行它时: import logging.handlers logger = logging.getLogger(__name__) logger.setLevel(loggin
我使用 SysLogHandler 配置了一个 Python 记录器,并作为测试使用所有级别记录了一些消息:调试、信息、警告、错误、严重。如果我运行“syslog”或查看 Console.app 显示
在 OS X 10.10.4 上使用 Python 3.5,我在输出系统日志消息中得到虚假的 ] 字符。这可以通过以下示例程序看到: #!/usr/bin/env python3 import log
我在 SO 上遵循了几个答案,但无济于事。 我正在 Macbook (Yosemite) 上开发,但我们的测试/生产机器是 Debian 7(使用 rsyslog)。我正在尝试以一种既可以在本地工作又
我是一名优秀的程序员,十分优秀!