正文
本文記錄了因?yàn)橐粋€(gè)簡(jiǎn)單的日志需求,繼而對(duì)linux環(huán)境下syslog、rsyslog、unix domain socket的學(xué)習(xí)。本文關(guān)注使用層面,并不涉及rsyslog的實(shí)現(xiàn)原理,感興趣的讀者可以參考rsyslog官網(wǎng)。另外,本文實(shí)驗(yàn)的環(huán)境實(shí)在debian8,如果是其他linux發(fā)行版本或者debian的其他版本,可能會(huì)稍微有些差異。
需求:
工作中有一個(gè)在Linux(debian8)環(huán)境下運(yùn)行的服務(wù)器程序,用python語(yǔ)言實(shí)現(xiàn),代碼中有不同優(yōu)先級(jí)的日志需要記錄,開(kāi)發(fā)的時(shí)候都是使用python的logging模塊輸出到文件,示例代碼如下:
1 import logging, os 2 3 logger = None 4 def get_logger(): 5 global logger 6 if not logger: 7 logger = logging.getLogger('ServerLog') 8 logger.setLevel(logging.INFO) 9 filehandler = logging.FileHandler(os.environ['HOME'] + '/Server.log', encoding='utf8')10 filehandler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))11 l