我是 Python 新手,尝试在我的代码中实现记录器。我创建了一个 python 文件:setup_logger.py
import logging
CLASS_NAME = ''
# Create and configure logger
LOG_FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
logging.basicConfig(filename='/Users/bobby/Desktop/lumberjack.log', level=logging.DEBUG, format=LOG_FORMAT)
logger = logging.getLogger()
Run Code Online (Sandbox Code Playgroud)
我在另一个 python 文件中使用此记录器配置:GetLogger.py 如下
from LoggerLevels.setup_logger import logger
if __name__ == '__main__':
logger.error('This is a basic log error message')
logger.info('This is a warning message')
Run Code Online (Sandbox Code Playgroud)
日志在文件中打印为:
2020-06-17 14:54:47,161 - root - ERROR - This is a basic log error message
2020-06-17 14:54:47,161 - root - INFO - This is a warning message
Run Code Online (Sandbox Code Playgroud)
但我看到类名打印为root. 我知道这是由于文件中的设置造成的setup_logger.py。无论如何,我可以将正在记录消息的当前类名发送到我的文件中吗?例如:我正在使用GetLogger.py文件中的记录器对象。无论如何我可以将消息记录为
2020-06-17 14:54:47,161 - GetLogger - ERROR - This is a basic log error message
2020-06-17 14:54:47,161 - GetLogger - INFO - This is a warning message
Run Code Online (Sandbox Code Playgroud)
谁能让我知道我怎样才能实现这一目标?
使用:
LOG_FORMAT = '%(asctime)s - %(module)s - %(levelname)s - %(message)s'
Run Code Online (Sandbox Code Playgroud)
如果这对您不起作用,您可以尝试使用setLoggerClass%(filename)s方法创建自定义类。