Python log 日誌的使用

2021-09-11 21:02:03 字數 2818 閱讀 4628

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...