gpt4 book ai didi

python 2.7 : setlogmask(0) not disabling syslog

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:40 29 4
gpt4 key购买 nike

我是一个Python新手,下面的代码将下面的信息写入/var/log/syslog

May  8 22:14:22.531833 almach <info>./test.txt: HELLO 01
May 8 22:14:22.531853 almach <info>./test.txt: HELLO 02
May 8 22:14:22.531860 almach <info>./test.txt: HELLO 03

所以,为什么

  1. 消息写入/var/log/syslog 而不是 ./test.txt?

  2. setlogmask(0) 无效,消息“HELLO 02”已写入系统日志?

此外,我在一台运行了恶魔 rsyslogd 的 Linux 机器上测试了代码,它可能以某种方式影响了我的代码。

from syslog import syslog, setlogmask, LOG_INFO, openlog

openlog('./test.txt')

syslog(LOG_INFO, "HELLO 01")

setlogmask(0)
syslog(LOG_INFO, "HELLO 02")

setlogmask(255)
syslog(LOG_INFO, "HELLO 03")

最佳答案

您需要使用 LOG_MASK(0) 来避免写入 HELLO 02 并记住掩码的先前值以在写入 HELLO 03 之前恢复它:

from syslog import syslog, setlogmask, LOG_INFO, LOG_MASK, openlog

openlog('./test.txt')

syslog(LOG_INFO, "HELLO 01")

mask = setlogmask(LOG_MASK(0))
syslog(LOG_INFO, "HELLO 02")

setlogmask(mask)
syslog(LOG_INFO, "HELLO 03")

/var/log/syslog 中的结果:

May  9 01:49:39 sanyash-ub16 ./test.txt: HELLO 01
May 9 01:49:39 sanyash-ub16 ./test.txt: HELLO 03

关于 python 2.7 : setlogmask(0) not disabling syslog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049852/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com