python

logzero日志库

2020-06-12  本文已影响0人  wit92
1.安装
pip install -U logzero
2.使用
from logzero import logger

# These log messages are sent to the console
logger.debug("hello %s", "world")
logger.info("info")
logger.warning("warn")
logger.error("error")

# This is how you'd log an exception
try:
    raise Exception("this is a demo exception")
except Exception as e:
    logger.exception(e)

如果文件名是demo.py,输出将会是下图

输入图片说明

输出还有颜色文件+行号。比logging默认的输出不知道强了多少条街道。

还有一些更高级的用法

3.日志切割
import logzero
from logzero import logger

# Setup rotating logfile with 3 rotations, each with a maximum filesize of 1MB:
logzero.logfile("/tmp/rotating-logfile.log", maxBytes=1e6, backupCount=3)

# Log messages
logger.info("This log message goes to the console and the logfile")
4.设置全局日志Level
import logzero
import logging
from logzero import logger

logzero.loglevel(logging.INFO)
logger.debug("hello") # 不显示
logger.info("info") # 显示
5.定制日志实例
from logzero import setup_logger
logger1 = setup_logger(name="mylogger1", logfile="/tmp/test-logger1.log", level=logging.INFO)
logger2 = setup_logger(name="mylogger2", logfile="/tmp/test-logger2.log", level=logging.INFO)

# By default, logging
logger1.info("info for logger 1")
logger2.info("info for logger 2")
6.常用API
(1)logzero.formatter()

logzero.formatter(formatter, update_custom_handlers=False)

为默认记录器logzero.logger的所有处理程序设置格式化程序。

默认情况下,这仅重新配置logzero内部处理程序,但您也可以使用重新配置自定义处理程序update_custom_handlers=True.

请注意,设置使用颜色的格式化程序也可以将颜色代码写入日志文件。

参数:

formatter(Formatter) 
Python日志记录Formatter对象(默认情况下使用内部LogFormatter)。

update_custom_handlers(bool)
如果您向此记录器添加了自定义处理程序并希望它也更新它们,则需要设置update_custom_handlers为True
(2)logzero.setup_logger()
logzero.setup_logger(name=None, logfile=None, level=10, formatter=None, maxBytes=0,
                    backupCount=0, fileLoglevel=None, disableStderrLogger=False)

配置并返回完全配置的记录器实例,没有麻烦。如果已存在具有指定名称的记录器,则返回现有实例,否则创建新实例。

如果logfile使用文件名设置参数,则记录器会将消息保存到日志文件中,但默认情况下不会旋转。如果要启用日志轮换,请同时设置maxBytesbackupCount

Usage

from logzero import setup_logger
logger = setup_logger()
logger.info("hello")
(3)logzero.logfile()
logzero.logfile(filename,formatter = None,mode ='a',maxBytes = 0,backupCount = 0,               encoding = None,loglevel = None,disableStderrLogger = False )
参数 意义
filename (string) 日志文件的文件名。设置为“ 无”以禁用日志文件的日志记录。
formatter (Formatter) Python日志记录Formatter对象(默认情况下使用内LogFormatter)
mode (string) 用于打开文件的模式。默认为a
maxBytes (int) 应发生翻转时日志文件的大小。默认为0,永远不会发生翻转。
backupCount (int) 要保留的备份数。默认为0,永远不会发生翻转
encoding (string) 用于打开具有该编码的文件
loglevel (int) 为文件记录器设置自定义loglevel,否则使用当前的全局loglevel
disableStderrLogger (bool) 是否应禁用默认的stderr记录器。默认为False
上一篇 下一篇

猜你喜欢

热点阅读