Python 日志常用配置代码记录 @ [Jack Deng] | 星期二,五月 26 日,2020 年 | 1 分钟阅读 | 更新于 星期二,五月 26 日,2020 年

Python 日志常用配置代码记录

条件允许,能用 loguru 就用 loguru 吧,方便好使!

标准库 logging

import logging
from logging.handlers import TimedRotatingFileHandler

logpath = "logging file path"
logger = logging.getLogger(logpath)
logger.setLevel(logging.DEBUG)
basicfmt = "%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s:%(message)s"
datefmt = "%Y-%m-%d %H:%M:%S"
formatter = logging.Formatter(basicfmt, datefmt)
chlr = logging.StreamHandler()
chlr.setFormatter(formatter)
chlr.setLevel(conslevel)
fhlr = TimedRotatingFileHandler(logpath,
                                when=when,
                                interval=interval)
fhlr.setFormatter(formatter)
fhlr.setLevel(filelevel)
logger.addHandler(chlr)
logger.addHandler(fhlr)

loguru

from loguru import logger

# No Handler, no Formatter, no Filter: one function to rule them all
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
logger.debug("That's it, beautiful and simple logging!")

logger.add("file_1.log", rotation="500 MB")    # Automatically rotate too big file
logger.add("file_2.log", rotation="12:00")     # New file is created each day at noon
logger.add("file_3.log", rotation="1 week")    # Once the file is too old, it's rotated

logger.add("file_X.log", retention="10 days")  # Cleanup after some time

logger.add("file_Y.log", compression="zip")    # Save some loved space

logger.info("If you're using Python {}, prefer {feature} of course!", 3.6, feature="f-strings")

@logger.catch
def my_function(x, y, z):
    # An error? It's caught anyway!
    return 1 / (x + y + z)

# Pretty logging with colors
logger.add(sys.stdout, colorize=True, format="<green>{time}</green> <level>{message}</level>")

# All sinks added to the logger are thread-safe by default.
# They are not multiprocess-safe, but you can enqueue the messages to ensure logs integrity.
# This same argument can also be used if you want async logging.
logger.add("somefile.log", enqueue=True)

© 2020 - 2022 Jack Deng's Blog

Powered by Hugo with theme Dream.

Miao

avatar

Jack Deng&Linrui Zou's Sweet HomeSuccess is not how many people you have won,but it's how many people you have helped