在CentOS系統中管理Python日志可以通過以下幾種方法實現:
logging
模塊Python的logging
模塊提供了靈活的日志記錄功能。以下是一個基本的配置示例:
import logging
# 設置基本配置
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 創建一個記錄器
logger = logging.getLogger(__name__)
# 記錄不同級別的消息
logger.debug("這是一條調試信息")
logger.info("這是一條普通信息")
logger.warning("這是一條警告信息")
logger.error("這是一條錯誤信息")
logger.critical("這是一條嚴重錯誤信息")
為了防止日志文件過大,可以使用logging.handlers.RotatingFileHandler
來配置日志輪轉。例如:
from logging.handlers import RotatingFileHandler
# 配置日志記錄
logging.basicConfig(filename='app.log', filemode='a', level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[RotatingFileHandler('app.log', maxBytes=10*1024*1024, backupCount=5),
logging.StreamHandler()])
# 獲取日志記錄器
logger = logging.getLogger(__name__)
# 記錄日志
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
在這個配置中,maxBytes
參數指定了每個日志文件的最大大?。ㄒ宰止潪閱挝唬?,backupCount
參數指定了保留的舊日志文件的數量。
logrotate
進行日志輪轉logrotate
是一個用于管理日志文件的工具,可以自動輪換日志文件,防止單個日志文件過大。你可以創建一個logrotate
配置文件來管理Python日志文件,例如:
/var/log/myapp/*.log {
daily rotate 7
compress
missingok
notifempty
}
然后將此配置文件添加到/etc/logrotate.d/
目錄中,并確保cron任務定期運行logrotate
。
ELK Stack(Elasticsearch, Logstash, Kibana)是一個強大的日志分析和可視化工具組合。你可以在CentOS系統上部署ELK Stack來集中管理和分析日志。
# 安裝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 -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
# 安裝Logstash
sudo apt-get install logstash
# 安裝Kibana
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 -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install kibana
配置Logstash:編輯/etc/logstash/conf.d/myapp.conf
文件,配置日志輸入和輸出。
配置Kibana:編輯/etc/kibana/kibana.yml
文件,配置Elasticsearch的地址。
journalctl
查看和管理系統日志journalctl
是systemd提供的日志管理工具,可以查看和管理系統日志。例如,要查看最近的系統日志,可以運行:
journalctl -u systemd.service