用于传递事件和日志记录级别的日志记录模块



嗨,我想创建一个日志模块,允许我设置日志级别并向函数传递消息。虽然这不起作用,但这是我的想法,需要一些指导。

def log_message(loglevel, message):
logging.getLogger().setLevel(loglevel.upper())
logging.basicConfig(level=logging.getLevelName, filename="mylog.log",
filemode="w", format="%(asctime)s - %(levelname)s - %(message)s")
logging.getLogger(message)

log_message("info", 'this is a test')

此实现可能不是线程安全的,不应用于生产级别,因为它只是修复函数中不起作用的部分。

import logging
# map logging levels
LEVELS = {"NOTSET":logging.NOTSET,"DEBUG":logging.DEBUG, "INFO":logging.INFO,
"WARNING":logging.WARNING,"ERROR":logging.ERROR, "CRITICAL":logging.CRITICAL}
handler = logging.FileHandler("mylog.log","a")
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger = logging.getLogger()
logger.addHandler(handler)
logger.setLevel(LEVELS["DEBUG"])
# your function
def log_message(logLevel, message):
# log file name
# map logging level to int values
logger.log(LEVELS[logLevel.upper()],message)
log_message("info", "asd")

嗯。据说setLevel只是指定了显示日志的最小阈值,所以应该没问题。

Logger.setLevel((指定记录器将处理的最低严重性日志消息,其中debug是最低内置严重性级别,critical是最高内置严重性。

然而,我不建议将其用于生产,因为您需要更好的日志记录功能。请参阅https://docs.python.org/3/howto/logging.html#basic-日志教程和https://docs.python.org/3/howto/logging.html#advanced-日志教程,以获得更好的日志设置。

最新更新