如何配置Ubuntu Python日志系统
在Ubuntu上配置Python日志系统,可参考以下方法:
一、使用Python内置logging
模块
通过代码或配置文件灵活设置日志级别、格式和输出目标。
- 基础配置(代码方式):
import logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', filename='app.log', filemode='a' # 'a'为追加模式,'w'为覆盖模式 ) logging.info('This is an info message')
- 配置文件方式:
创建logging.conf
文件,定义日志处理器(如控制台、文件)、格式和级别,通过logging.config.fileConfig()
加载。[loggers] keys=root [handlers] keys=consoleHandler,fileHandler [formatters] keys=simpleFormatter [logger_root] level=DEBUG handlers=consoleHandler,fileHandler [handler_consoleHandler] class=StreamHandler level=DEBUG formatter=simpleFormatter args=(sys.stdout,) [handler_fileHandler] class=FileHandler level=DEBUG formatter=simpleFormatter args=('app.log', 'a') [formatter_simpleFormatter] format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
二、日志轮转(避免文件过大)
使用系统工具logrotate
管理日志文件,设置按天轮转、保留天数、压缩等规则。
- 安装与配置:
添加以下内容(按需修改路径和参数):sudo apt install logrotate sudo nano /etc/logrotate.d/myapp
/var/log/myapp/*.log { daily rotate 7 compress delaycompress missingok notifempty create 0640 root root }
三、高级分析(ELK Stack)
适合大规模日志分析,需安装Elasticsearch、Logstash、Kibana。
- 安装ELK:
# 安装Elasticsearch wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list sudo apt update && sudo apt install elasticsearch # 安装Logstash wget -qO - https://artifacts.elastic.co/GPG-KEY-logstash | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/logstash-7.x.list sudo apt install logstash # 安装Kibana wget -qO - https://artifacts.elastic.co/GPG-KEY-kibana | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/kibana-7.x.list sudo apt install kibana
- 配置Logstash:
创建/etc/logstash/conf.d/myapp.conf
,指定日志路径和输出到Elasticsearch:input { file { path => "/var/log/myapp/*.log" start_position => "beginning" } } output { elasticsearch { hosts => ["localhost:9200"] index => "myapp-logs" } }
四、关键注意事项
- 权限管理:确保日志文件路径可写,避免权限问题。
- 环境适配:生产环境中建议将日志输出到系统日志服务(如
syslog
),而非直接文件。 - 性能优化:高频日志场景可考虑异步日志处理器(如
concurrent-log-handler
库)。
以上方法可根据项目需求选择,基础场景推荐logging
模块,复杂场景可结合logrotate
或ELK。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!