配置 Rsyslog
- /etc/rsyslog.conf 配置如下配置
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
$template remote-incoming-logs,"/data/log/%$YEAR%/%$MONTH%/%$DAY%/%programname%/%$hour%"
. ?remote-incoming-logs
2. 重启 rsyslog 服务
`# systemctl restart rsyslog`
3. 确认 /data/log 目录及权限
`mkdir /data/log && chmod 777 /data/log`
## 配置 Python 上传日志
1. 测试日志传到远程 rsyslog 服务器的 python demo
import logging
import logging.handlers
日志对象的名称
my_logger = logging.getLogger('django_log')
my_logger.setLevel(logging.INFO)
日志格式
formatter = logging.Formatter("%(processName)s %(name)s %(message)s")
handler = logging.handlers.SysLogHandler(address=('10.20.2.12', 514))
handler.setFormatter(formatter)
my_logger.addHandler(handler)
my_logger.info("test logging")
2. 在 rsyslog 服务器的对应目录下确认按小时生成的日志文件(根据上面 rsyslog 的配置自动生成)
ls /data/log/2022/06/03/django_log
16
3. 确认测试的日志内容
cat /data/log/2022/06/03/django_log/16
Jun 3 16:57:37 MainProcess django_log test logging