python之syslog模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之syslog模块相关的知识,希望对你有一定的参考价值。


syslog模块为提供了rsyslog模块的一个接口。可以记录程序运行时的输出信息。

个人认为此方法没有logging模块方便

常用方法如下:

syslog.open(indent[,logopt[,facility]])  ####初始化rsyslog日志接口函数

syslog.syslog([priority],message)    #######将message记录到日志文件

syslog.closelog()               ########关闭日志


syslog.open(indent[,logopt[,facility]])方法

indent参数:

>>> import syslog

>>> syslog.openlog(‘gyyx.py‘)

>>> syslog.syslog(‘this is a brief test!‘)

[[email protected] ~]# tail -f /var/log/messages

Mar 16 12:19:11 cdn gyyx.py: this is a brief test!   


logopt参数:

选项名称:LOG_CONS,LOG_NDELAY,LOG_NOWAIT,LOG_PID,LOG_PERROR

可以从中选择一个,或者多个(要借助或操作符”|”)

>>> syslog.openlog(‘gyyx.py‘,syslog.LOG_PID)   ##########日志增加了进程PID

>>> syslog.syslog(‘this is a brief test!and add pid‘)

[[email protected] ~]# tail -f /var/log/messages

Mar 16 12:23:21 cdn gyyx.py[11887]: this is a brief test!and add pid


facility参数:

名称:

LOG_AUTH,LOG_CRON,LOG_DAEMON,LOG_KERN,LOG_LOCALx,LOG_LPR,LOG_MAIL,LOG_NEWS,LOG_USER,LOG_UUCP,系统管理员使用这些参数配置信息如何分解到不同的文件和服务中。在前面,我们一直将信息输出到messages文件中,这次,我们要结合syslog.conf的配置来将其输出到其他文件了。修改rsyslog.conf,修改如下:

*.info;mail.none;authpriv.none;cron.none;auth.none    /var/log/messages  #验证不写入message

auth.*               /var/log/python.auth  ######验证写入此文件



syslog.openlog(‘test.py‘,syslog.LOG_PID|syslog.LOG_NOWAIT,syslog.LOG_AUTH)

syslog.syslog(‘the process is test.py111111111111111111111‘)

syslog.closelog()


[[email protected] ~]# tail -f /var/log/python.auth 

Mar 16 12:03:08 cdn test.py[11857]: the process is test.py111111111111111111111

Mar 16 12:04:54 cdn test.py[11874]: the process is test.py111111111111111111111

Mar 16 12:05:07 cdn test.py[11877]: the process is test.py111111111111111111111


syslog.syslog([priority],message)方法

Priority参数

名称:LOG_EMERG,LOG_ALERT,LOG_CRIT,LOG_ERR,LOG_WARNING,LOG_INFO,LOG_DEBUG(默认为LOG_INFO)


以上是关于python之syslog模块的主要内容,如果未能解决你的问题,请参考以下文章

python3/syslog:多个系统日志流?

syslog.syslog 与 SysLogHandler

Python SysLogHandler -> syslog:logstash。设施未变

如何在 python 中将日志发送到 syslog?

Python syslog 记录器不能写入超过 2048 个字符

如何在 Mac OS X *和* Debian (7) 上使用 SysLogHandler 或 syslog 从 Python 登录到 syslog