logger

自定义保存路径、保存文件个数

import logging
from logging.handlers import TimedRotatingFileHandler
from pathlib import Path
import os

dir_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))

# =============== config ===============
LOGGER_NAME = 'surf_draw'
CONSOLE_LEVEL = logging.INFO
LOG_PATH = Path(os.path.join(dir_path, 'logs'))
# ======================================


INFO_PATH = LOG_PATH / Path('info')
WARNING_PATH = LOG_PATH / Path('warning')
ERROR_PATH = LOG_PATH / Path('error')

INFO_PATH.mkdir(parents=True, exist_ok=True)
WARNING_PATH.mkdir(parents=True, exist_ok=True)
ERROR_PATH.mkdir(parents=True, exist_ok=True)

# create logger
logger = logging.getLogger(LOGGER_NAME)
logger.setLevel(logging.INFO)

# create console handler and set level to info
stream_handler = logging.StreamHandler()
stream_handler.setLevel(CONSOLE_LEVEL)

# create file handler and set level to info
file_name = LOG_PATH.joinpath('info/info.log')
info_handler = TimedRotatingFileHandler(filename=file_name, when='midnight', backupCount=10)
info_handler.setLevel(logging.INFO)

# create file handler and set level to warning
file_name = LOG_PATH.joinpath('warning/warning.log')
warning_handler = TimedRotatingFileHandler(filename=file_name, when='midnight', backupCount=10)
warning_handler.setLevel(logging.WARNING)

# create file handler and set level to error
file_name = LOG_PATH.joinpath('error/error.log')
error_handler = TimedRotatingFileHandler(filename=file_name, when='midnight', backupCount=10)
error_handler.setLevel(logging.ERROR)

# create formatter
stream_formatter = logging.Formatter('[{asctime}][{levelname}] {message}', style='{', datefmt='%Y-%m-%d %H:%M')
file_formatter = logging.Formatter('[{asctime}][{levelname}][{filename} line{lineno}] {message}', style='{', datefmt='%Y-%m-%d %H:%M:%S')

# add formatter to ch
stream_handler.setFormatter(stream_formatter)
info_handler.setFormatter(file_formatter)
warning_handler.setFormatter(file_formatter)
error_handler.setFormatter(file_formatter)

# add ch to logger
logger.addHandler(stream_handler)
logger.addHandler(info_handler)
logger.addHandler(warning_handler)
logger.addHandler(error_handler)

logger.debug('Log module loaded successfully.')

 

只打印 info 信息,不保存文件

import logging

# create logger
logger = logging.getLogger('RunWayWind')
logger.setLevel(logging.INFO)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)

# create formatter
formatter = logging.Formatter(
    '[{asctime}][{levelname:^5}][ {filename:^20} line{lineno:>5}] {message}', style='{', datefmt='%Y/%m/%m %H:%M:%S')

# add formatter to ch
ch.setFormatter(formatter)

# add ch to logger
logger.addHandler(ch)

logger.info('Log module loaded successfully.')

 

posted on 2022-06-22 14:34  闹不机米  阅读(117)  评论(0编辑  收藏  举报

导航