hon*_*ute 4 logging python-3.x
我在基本配置中设置了两个日志处理程序。记录FileHandler
到文件并StreamHandler
记录到标准输出。
logging.basicConfig(
format="%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] %(message)s",
level=logging.INFO,
handlers=[
logging.FileHandler("/my/log/file.log"),
logging.StreamHandler(sys.stdout)
]
)
Run Code Online (Sandbox Code Playgroud)
目前,上面的代码工作正常,但是,我希望StreamHandler
输出不同的格式,只是%(message)
.
有没有办法在 my 中指定这一点logging.basicConfig
?
在将其传递给之前预定义StreamHandler
并设置所需的自定义格式basicConfig
:
handler_sh = logging.StreamHandler(sys.stdout)\nhandler_sh.setFormatter(logging.Formatter("%(message)s"))\n
Run Code Online (Sandbox Code Playgroud)\n\nhandler
您现在可以将使用已设置的格式化程序创建的内容传递给basicConfig
:
logging.basicConfig(\n format="%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] %(message)s",\n level=logging.INFO,\n handlers=[\n logging.FileHandler("/my/log/file.log"),\n handler_sh\n ]\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n仅FileHandler
接受format
传入的basicConfig
:
\n\n任何尚未设置格式化程序的处理程序都将被分配在此函数中创建的默认格式化程序。
\n