我在无限循环中运行我的 python 3.7 程序,当日志文件变得非常大时,日志会拖累大量的 CPU 功率。因此,我希望我的日志只是打印到控制台而不是写入文件。我知道我可以使用打印,但我更喜欢记录。
这是我目前使用的:
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(name)-12s %(levelname)-8s %
(message)s',
datefmt='%m-%d %H:%M%S',
filename='mylogfile.log',
filemode='w')
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %
(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
logger = logging.getLogger('')
然后我像这样使用模块:
logger.error('error in X')
有什么可以用来防止日志记录模块写入文件的吗?
我不是专家,但我的解决方案对我有用(仅写入控制台):
logger = logging.getLogger("MyApp")
logger.setLevel(logging.DEBUG)
# remove all default handlers
for handler in logger.handlers:
logger.removeHandler(handler)
# create console handler and set level to debug
console_handle = logging.StreamHandler()
console_handle.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter("%(name)-20s - %(levelname)-8s - %(message)s")
console_handle.setFormatter(formatter)
# now add new handler to logger
logger.addHandler(console_handle)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句