如何在Python中使用syslog日志

这篇文章将为大家详细讲解有关如何在Python中使用syslog日志,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

该模块的主要方式为:

#!/usr/bin/python
#-*-coding:utf-8-*-
importsyslog
syslog.openlog([ident[,logoption[,facility]]])
syslog.syslog(priority,message)
syslog.closelog()

ident 的信息为 /bluedon/test.py

logoption 的信息为 [4642]

facility 的信息为 记录日志文件的位置 ,本文选取的 facility = syslog.LOG_USER ,即日志输出在 /var/log/messages

如何在Python中使用syslog日志

源码为:

#!/usr/bin/python
#-*-coding:utf-8-*-
importsyslog
importos

if__name__=='__main__':
#https://docs.python.org/2/library/syslog.html
#syslog.openlog([ident[,logoption[,facility]]])

#ident
filename=os.path.abspath(__file__)

#logoption
#LOG_CONS:如果将信息发送给守护进程时发生错误,直接将相关信息输入到相关信息输出到终端。
#LOG_NDELAY:立即打开与系统日志的连接(通常情况下,只有在产生第一条日志信息的情况下才会打开与日志系统的连接)
#LOG_NOWAIT:在记录日志信息时,不等待可能的子进程的创建
#LOG_ODELAY:类似于LOG_NDELAY参数,与系统日志的连接只有在syslog函数调用时才会创建
#LOG_PID:每条日志信息中都包括进程号
#LOG_PID,LOG_CONS,LOG_NDELAY,LOG_NOWAIT,LOG_PERROR
pid=syslog.LOG_PID

#facility
#LOG_KERN,LOG_USER,LOG_MAIL,LOG_DAEMON,LOG_AUTH,LOG_LPR,LOG_NEWS,LOG_UUCP,LOG_CRON,LOG_SYSLOG,LOG_LOCAL0toLOG_LOCAL7
filepath=syslog.LOG_USER

#Priority
#LOG_EMERG,LOG_ALERT,LOG_CRIT,LOG_ERR,LOG_WARNING,LOG_NOTICE,LOG_INFO,LOG_DEBUG
level=syslog.LOG_NOTICE

#messages
messages="teststart14"

#syslog.openlog([ident[,logoption[,facility]]])
syslog.openlog(filename,pid,filepath)
#syslog.syslog(priority,message)
syslog.syslog(level,messages)
#closesyslog
syslog.closelog()

#vimvar/log/message
#tail-f/tmp/syslog.txt

在不同机器上面查看结果:

如何在Python中使用syslog日志

如何在Python中使用syslog日志

将其写成了类

#!/usr/bin/python
#-*-coding:utf-8-*-
importsyslog


classmysyslog(object):
#level
#LOG_EMERG,LOG_ALERT,LOG_CRIT,LOG_ERR,LOG_WARNING,LOG_NOTICE,LOG_INFO,LOG_DEBUG
debug=syslog.LOG_DEBUG
info=syslog.LOG_INFO
notice=syslog.LOG_NOTICE
warning=syslog.LOG_WARNING
err=syslog.LOG_ERR
crit=syslog.LOG_CRIT
alert=syslog.LOG_ALERT
emerg=syslog.LOG_EMERG

#logoption
#LOG_PID,LOG_CONS,LOG_NDELAY,LOG_NOWAIT,LOG_PERROR
#LOG_CONS:如果将信息发送给守护进程时发生错误,直接将相关信息输入到相关信息输出到终端。
#LOG_NDELAY:立即打开与系统日志的连接(通常情况下,只有在产生第一条日志信息的情况下才会打开与日志系统的连接)
#LOG_NOWAIT:在记录日志信息时,不等待可能的子进程的创建
#LOG_ODELAY:类似于LOG_NDELAY参数,与系统日志的连接只有在syslog函数调用时才会创建
#LOG_PID:每条日志信息中都包括进程号
cons=syslog.LOG_CONS
ndelay=syslog.LOG_NDELAY
nowait=syslog.LOG_NOWAIT
pid=syslog.LOG_PID

#facility
#LOG_KERN,LOG_USER,LOG_MAIL,LOG_DAEMON,LOG_AUTH,LOG_LPR,LOG_NEWS,LOG_UUCP,LOG_CRON,LOG_SYSLOG,LOG_LOCAL0toLOG_LOCAL7
#kern=syslog.LOG_KERN
#user=syslog.LOG_USER
#mail=syslog.LOG_MAIL
#daemon=syslog.LOG_DAEMON
#auth=syslog.LOG_AUTH
#lpr=syslog.LOG_LPR
#news=syslog.LOG_NEWS
#uucp=syslog.LOG_UUCP
#cron=syslog.LOG_CRON
#_syslog=syslog.LOG_SYSLOG

@classmethod
def__init__(self):
pass

@staticmethod
defbasicConfig(name,logoption):
facility=syslog.LOG_USER
syslog.openlog(name,logoption,facility)

@staticmethod
deftosyslog(level,ip,messages):
newmessages="["+ip+"]"+""+messages
syslog.syslog(level,newmessages)

关于如何在Python中使用syslog日志就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

发布于 2021-03-21 22:40:18
收藏
分享
海报
0 条评论
179
上一篇:如何在C语言中使用const关键字 下一篇:怎么在Django中使用celery处理异步任务
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码