首页 > 编程语言 > 详细

python logging rsyslog混合使用

时间:2021-04-01 10:28:37      阅读:23      评论:0      收藏:0      [点我收藏+]

简介:

  企业规模大了,场景业务多了,日志不能再分散处理了。那么第一选择就是日志服务器,一台服务器就可以查看所有业务的日志,当然,也要有专门的数据库存储日志,专门的WEB浏览日志。

  作为linux的默认日志服务,rsyslog就是我们的第一选择了,它即是linux系统的日志服务,也可以配置开放端口作为中央日志服务器。

  rsyslog能够接受从各种各样的来源,将其输入,输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件。

  简单说,我们写python程序的时候,日志使用logging模块,是可以直接输出到远程的rsyslog中央日志服务器的。

一:安装rsyslog

我测试使用的fedora默认已经安装了,没安装的话,自己dnf apk ……根据自己的系统装一下。

二:配置rsyslog

rsyslog的配置文件为: /etc/rsyslog.conf

编辑此文件即可。

1.MODULES

模块:可以理解为rsyslog的插件,配置打开这些插件,rsyslog就开启了这个功能,我比较关心的是tcp、udp端口监听记录功能

# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
#module(load="imudp") # needs to be done just once
#input(type="imudp" port="514")

# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

我取消了tcp端口514的注释,即监听514端口tcp协议。记录发向这里的日志内容。

2.RULES

规则:记录的保存规则吧。

$template DynamicFile,"/var/log/%HOSTNAME%/forwarded-logs.log"
*.* -?DynamicFile

我在RULES下面增加了这个内容

第一行是文件名模板,

第二行是任何日志都保存到这个模板文件名中。

3.数据库

实验没到这里,候补

三:python logging

import logging
import socket
from logging import handlers

#初始化日志
logger = logging.getLogger("AppName")

# 指定logger输出格式
formatter = logging.Formatter(%(asctime)s %(levelname)-8s: (%(name)s)%(pathname)s %(message)s)

#rsyslog日志处理器
rsyslog_handler=handlers.SysLogHandler(address=(10.0.0.10, 514), socktype=socket.SOCK_STREAM)
rsyslog_handler.setFormatter(formatter)

# 为logger添加的日志处理器
logger.addHandler(rsyslog_handler)

# 指定日志的最低输出级别,默认为WARN级别
logger.setLevel(logging.DEBUG)

# 输出不同级别的log
logger.debug(文件? )
logger.info(this is information)
logger.warning(this is warning message)
logger.error(this is error message)
logger.fatal(this is fatal message, it is same as logger.critical)
logger.critical(this is critical message)

关键的是设置服务器地址,端口,还有协议,sysloghandler默认使用udp协议,

socktype=socket.SOCK_STREAM    是定义tcp协议

10.0.0.10    514 是定义rsyslog服务器地址和端口  只要能解析,填主机名,域名都可以。

暂时到这里吧,凌晨1点多了。虽然还有数据库问题,储存格式,储存内容一些问题没有解决。

 

 

python logging rsyslog混合使用

原文:https://www.cnblogs.com/jackadam/p/14604577.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!