Java 如何在Python中一处定义日志记录?
我是新Python,我想在一个地方用Python定义以下日志代码,以便它可以在其他Python文件(类或非类)中使用。对于Java,我们使用log4j或slf4j作为jar文件的一部分,我们只需定义为Java 如何在Python中一处定义日志记录?,java,python,python-3.x,python-logging,Java,Python,Python 3.x,Python Logging,我是新Python,我想在一个地方用Python定义以下日志代码,以便它可以在其他Python文件(类或非类)中使用。对于Java,我们使用log4j或slf4j作为jar文件的一部分,我们只需定义为Logger Logger=Logger.getLogger(“类名”),我希望实现与此完全相同的效果,以便我可以在任何python模块中使用loger。目前,我在所有类中定义了配置 导入日志 logging.basicConfig( 级别=logging.INFO, format=“%(ascti
Logger Logger=Logger.getLogger(“类名”)
,我希望实现与此完全相同的效果,以便我可以在任何python模块中使用loger。目前,我在所有类中定义了配置
导入日志
logging.basicConfig(
级别=logging.INFO,
format=“%(asctime)s[%(levelname)s](消息)s”,
处理者=[
logging.FileHandler(“debug.log”),
logging.StreamHandler()
]
)
我也通过了这个SO链接
另外,对于具有更多python文件的中大型项目,请建议最推荐的方法。使日志处理程序随处可用的一个选项是: a、 py: b、 py: 输出:
2020-02-14 20:18:17,549 a.py [INFO] module a!
2020-02-14 20:18:17,550 b.py [INFO] This is from module b.py
2020-02-14 20:18:17,550 b.py [INFO] Log message from b.foo()
根据这个链接,作者提到了一个更好的实践。可能有更好的推荐方法。
你必须按以下方式做
logging.json
文件LogSetup.py
的python文件,并将其添加到代码下面LogSetup.setup\u logging()
。
我在下面提供代码片段这对我来说很好,其他人可能会推荐更好的方法。先生,我可以这样做,但我需要最好的方法来做。你提到的问题的答案有什么问题吗?先生,我想要一个共同的地方,这样我就可以简单地使用
logger=logging.getLogger(\uu name\uuuuu)
和logger.debug(“某物”)
。目前我在所有文件中定义。
logger.info(msg='This is from module b.py')
def foo():
logger.info('Log message from b.foo()')
foo()
2020-02-14 20:18:17,549 a.py [INFO] module a!
2020-02-14 20:18:17,550 b.py [INFO] This is from module b.py
2020-02-14 20:18:17,550 b.py [INFO] Log message from b.foo()
def setup_logging(default_path='logging.json', default_level=logging.DEBUG, env_key='LOG_CFG'):
"""Setup logging configuration"""
path = default_path
value = os.getenv(env_key, None)
if value:
path = value
if os.path.exists(path):
with open(path, 'rt') as f:
config = json.load(f)
logging.config.dictConfig(config)
else:
logging.basicConfig(level=default_level)
if __name__ == '__main__':
LogSetup.setup_logging()
logger.debug("This is a debug message ...")