import logging
import logging.handlers
import os
import time
class logs(object):
def __init__(self):
self.logger = logging.getlogger("")
# 設定輸出的等級
levels =
# 建立檔案目錄
logs_dir = "logs"
if os.path.exists(logs_dir) and os.path.isdir(logs_dir):
pass
else:
os.mkdir(logs_dir)
# 修改log儲存位置
timestamp = time.strftime("%y-%m-%d", time.localtime())
log_filename = '%s.log' % timestamp
log_file_path = os.path.join(logs_dir, log_filename)
rotating_file_handler = logging.handlers.rotatingfilehandler(filename=log_file_path,
maxbytes=1024 * 1024 * 5,
backupcount=5)
# 設定輸出格式
formatter = logging.formatter('[%(asctime)s] '
'[%(levelname)s] '
'%(message)s',
'%y-%m-%d %h:%m:%s')
# formatter = logging.formatter('%(asctime)s - %(filename)s:[line:%(lineno)s] - %(name)s - %(message)s')
rotating_file_handler.setformatter(formatter)
# 控制台控制代碼
console = logging.streamhandler()
console.setlevel(logging.notset)
console.setformatter(formatter)
# 新增內容到日誌控制代碼中
self.logger.addhandler(rotating_file_handler)
self.logger.addhandler(console)
self.logger.setlevel(logging.notset)
def debug(self, message):
self.logger.debug(message)
def info(self, message):
self.logger.info(message)
def warning(self, message):
self.logger.warning(message, exc_info=1)
def error(self, message):
self.logger.error(message, exc_info=1)
import multiprocessing
import sys
import logging.handlers
# 日誌
# 方便的除錯,可以用logging
logger = multiprocessing.get_logger()
logger.setlevel(logging.info)
# 建立乙個handler,用於寫入日誌檔案
fh = logging.handlers.rotatingfilehandler("log1.log", maxbytes=1024 * 1024, backupcount=5)
fh.setlevel(logging.debug)
fe = logging.handlers.rotatingfilehandler("error.log", maxbytes=1024 * 1024, backupcount=5)
fe.setlevel(logging.error)
# 定義handler的輸出格式
formatter = logging.formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setformatter(formatter)
fe.setformatter(formatter)
logger.addhandler(fh)
logger.addhandler(fe)
def worker():
print('doing some work')
logger.info("info in worker")
logger.debug("debug in worker")
logger.error("error in worker")
logger.warning("warning in worker")
logger.critical("critical in worker")
sys.stdout.flush()
if __name__ == '__main__':
multiprocessing.log_to_stderr()
p = multiprocessing.process(target=worker)
p.start()
p.join()
python log日誌 多執行緒安全
python中的日誌檔案為logger,常用的有兩個 rotatingfilehandler timedrotatingfilehandler。檔案沒滿足分割條件前,儲存在 info.log 自己命名的檔案 中,如果滿足分割條件,會生成 info.log.1 下一次滿足分割條件後,將 info.lo...
mysql日誌的使用
mysql有以下幾種日誌 錯誤日誌 log err 查詢日誌 log 慢查詢日誌 log slow queries 更新日誌 log update 二進位制日誌 log bin 在mysql的安裝目錄下,開啟my.ini,在後面加上上面的引數,儲存後重啟mysql服務就行了。例如 enter a n...
python日誌的使用
1 日誌設定 1 import logging 23 global logger 設定全域性變數,涉及動態修改 4 g logdir d checkerpath logs 5 6def tearup 7 建立乙個logger 8global root logger 9global fh10 glob...