python之syslog学习 - 坏男孩 - 51CTO技术博客
python之syslog学习 - 坏男孩 - 51CTO技术博客
python之syslog学习
2010-04-22 17:47:01
标签:休闲 python syslog 职场
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://5ydycm.blog.51cto.com/115934/303046大家在写程序时,都喜欢将过程和输出结果以log的形式保留下来,供参考。大部分朋友都采取的是open方式打开一个文件句柄方式,将其信息write进去,今天我学习的是采取unix或者类unix提供的一个syslog服务。在我们的python里提供了一个syslog的模块,这个模块就是为系统syslog程序提供的一个接口。以下我将用通俗的语言和例子来说明下面的函数:syslog.openlog(ident[, logopt[, facility]])这个就是初始化syslog接口的函数,在这里有一个必须的参数和两个可选的参数。第一个参数,ident这个就是一个标识字符串,是log里每一行中程序的名程,如:syslog.openlog("test.py")syslog.syslog("The process is
test.py")tail -n 1 /var/log/messagesApr 22 16:26:52 databak test.py: The process is test.py对上了吧?看明白了吧?第二个参数,logopt选项名称:LOG_CONS,LOG_NDELAY,LOG_NOWAIT,LOG_PID,LOG_PERROR大家可以从中选择一个,或者多个(要借助或操作符”|”),如:Syslog.openlog(“test.py”,syslog.LOG_PID|syslog.LOG_PERROR)Syslog.syslog(“The messages print pid and
messages print to stderr”)>>>
syslog.syslog("The messages print pid and messages print to stderr")test.py[16826]: The messages print pid and messages print to stderr[root@databak scripts]# tail -n 1
/var/log/messagesApr 22 16:33:32 databak test.py[16826]: The messages print pid and messages print to
stderr看到没,它一方面将其直接打印出来,另一方面将日志记录到messages中,并且按要且添加了此进程的pid号注:LOG_PERROR 错误除了记录到syslog机构中,同时还会在stderr打印出来。第三个参数,facility名称:LOG_AUTH,LOG_CRON,LOG_DAEMON,LOG_KERN,LOG_LOCALx,LOG_LPR,LOG_MAIL,LOG_NEWS,LOG_USER,LOG_UUCP系统管理员使用这些参数配置信息如何分解到不同的文件和服务中。在前面,我们一直将信息输出到messages文件中,这次,我们要结合syslog.conf的配置来将其输出到其他文件了。修改syslog.conf,添加auth.*
/var/log/python.auth将认证的信息输出到python.auth中,那么我们的程序应该如何写呢?Syslog.openlog(“test.py”,syslog.LOG_PID,syslog.LOG_AUTH)Syslog.syslog(“Test Auth!”)[root@databak scripts]# tail -f
/var/log/python.authApr 22 16:43:47 databak test.py[16829]:
Test Auth![root@databak scripts]# tail -n 1
/var/log/messagesApr 22 16:43:17 databak test.py[16829]:
Test Auth!看到没,messages和python.auth这两个文件里都有了相关的信息了,怎么回事呢?我想让其只输出到python.auth,不想输出到messages呀?我想是因为我们没有配置syslog的优先权,我们的syslog.syslog默认的优先权是LOG_INFO,自然我们将其内容一方面输出到认证的文件里,一方面又输出到messages文件里了。所以,我们需要修改下syslog.conf的配置,*.info;*****;auth.none /var/log/messages大家再试下。。。。这个函数大家明白了吧?接下来,我们看syslog函数在上面的例子中,syslog函数一直伴随着我们,我相信大家也看到了一点门道了,现在我还是把函数公示给大家吧。syslog.syslog([priority], message)这里有两个参数,一个可选一个必写。Message就不用说了,我的例子都有了,只是要说明下可选参数了。Priority,名称:LOG_EMERG,LOG_ALERT,LOG_CRIT,LOG_ERR,LOG_WARNING,LOG_INFO,LOG_DEBUG(默认为LOG_INFO)我们想将认证错误的信息写到python.err文件中,那么修改syslog.confauth.err /var/log/python.err看程序:Syslog.openlog(“test.py”,syslog.LOG_PID,syslog.LOG_AUTH)Syslog.syslog(syslog.LOG_ERR,“Add error information to
python.err file”)结果:[root@databak ~]# tail -f /var/log/python.errApr 22 17:05:00 databak test.py[16933]: Add error
information to python.err file[root@databak ~]# tail -n 1 /var/log/messages实验成功,那么,我改下优先权看下,看程序:Syslog.openlog(“test.py”,syslog.LOG_PID,syslog.LOG_AUTH)Syslog.syslog(syslog.LOG_INFO,“Add info information to
python.err file”)结果:[root@databak ~]# tail -f /var/log/python.err[root@databak ~]# tail -n 1 /var/log/messages两个文件都没有,因为你的程序没有符合任合一个(syslog.conf)的要求,所以信息不会写到任何一个文件中的。总结:Openlog,syslog这两个函数并且结合syslog.conf的配置,就能定制出一种很好的日志记录功能。通过openlog的函数,我们就可以将信息分门别类的记录到何种文件下并采取syslog函数参数便可以将何种服务的级别记录到何种文件下,前提需要syslog.conf的配合。本文出自 “坏男孩” 博客,请务必保留此出处http://5ydycm.blog.51cto.com/115934/303046
转载于:https://www.cnblogs.com/lexus/archive/2012/04/24/2467836.html
python之syslog学习 - 坏男孩 - 51CTO技术博客相关推荐
- python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客
python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客 python脚本监控网站状态 2013-01-09 09:21:02 标签:监控 python 原创作品,允许转载,转载时请 ...
- (2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客
(2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客 (2006, 'MySQL server has gone away ...
- 有关网页抓取问题的一些经验总结 - passover【毕成功的博客】 - 51CTO技术博客
有关网页抓取问题的一些经验总结 - passover[毕成功的博客] - 51CTO技术博客 有关网页抓取问题的一些经验总结 2011-05-05 18:07:38 标签:爬虫 网页抓取 在写爬虫的时 ...
- HAproxy - 铁钉 - 51CTO技术博客
HAproxy - 铁钉 - 51CTO技术博客 HAproxy 2009-11-30 14:24:37 标签:HAproxy 休闲 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出 ...
- 今天正式开通51CTO技术博客
今天正式开通51CTO技术博客,今后会把自己工作和学习过程中的点点滴滴记录在此博客中! 转载于:https://blog.51cto.com/dashuai/1160235
- Maven问题总结 - 3 - 技术改变生活商业成就梦想 - 51CTO技术博客
Maven问题总结 - 3 - 技术改变生活商业成就梦想 - 51CTO技术博客 Maven问题总结 - 3 - 技术改变生活商业成就梦想 - 51CTO技术博客 Maven问题总结 - 3 2010 ...
- 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客
自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansib ...
- CentOS 6.4下安装和配置Samba - 行知小筑 - 51CTO技术博客
CentOS 6.4下安装和配置Samba - 行知小筑 - 51CTO技术博客
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover【毕成功的博客】 - 51CTO技术博客...
Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover[毕成功的博客] - 51CTO技术博客
最新文章
- 近期热门领域新鲜数据集汇总!
- java经典模式:七种模式样例
- 隐私计算--联邦学习
- 数据库表初始化,删除所有数据后主键ID从1开始
- C 语言 int 型乘法溢出问题
- MySQL笔记——JDBC入门
- pandas镜像安装_Python安装库太慢?配置好这个速度飞起
- c语言学习-使用指针对三个变量互相赋值
- android 手机关机代码非root,Android手机获取root权限并实现关机重启功能的方法
- N9程序开发-生成项目
- java jsp交友系统_Jsp+Servlet+Javabean网络交友程序设计+源代码
- 保定工程技术学校网络计算机,保定工程技术学校2021年有哪些专业
- 一文看懂ARM Cortex-M处理器 ARM Cortex-M 处理器家族介绍和比较
- 和风天气更新数据失败原因分析
- kindle上查看微信读书的书籍
- 开源库UniTask笔记
- 在Mac下如何创建文件
- 生物技术的计算机应用系统,生物技术在计算机发展中的作用.pdf
- FMEA失效模式各独立风险需严守【S/O/D】标准
- Jenkins 持续集成环境快捷部署