我想在我的应用程序中使用python的日志框架,我想允许我的应用程序的最终用户指定日志文件.(通过Python日志框架的配置机制,在我的例子中是YAML文件的一部分,最终用户可以编辑该文件以指定日志记录的行为方式.)
有没有办法通过创建它来获取日志框架以确保目录存在?因为日志文件名的确切路径嵌入在最终用户指定的配置信息中,所以作为应用程序编写者解析此信息以确定应创建哪个目录对我来说非常重要.
如果最终用户指定"foo/bar/baz.log",我想确保创建了foo/bar目录.
注意:这是关于Java日志记录的这个SO问题的Python等价物.
unu*_*tbu 25
初始化期间FileHandler
要调用的子类(或您正在使用的任何处理程序)mkdir_p
:
import logging
import os
import errno
def mkdir_p(path):
"""http://stackoverflow.com/a/600612/190597 (tzot)"""
try:
os.makedirs(path, exist_ok=True) # Python>3.2
except TypeError:
try:
os.makedirs(path)
except OSError as exc: # Python >2.5
if exc.errno == errno.EEXIST and os.path.isdir(path):
pass
else: raise
class MakeFileHandler(logging.FileHandler):
def __init__(self, filename, mode='a', encoding=None, delay=0):
mkdir_p(os.path.dirname(filename))
logging.FileHandler.__init__(self, filename, mode, encoding, delay)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18035 次 |
最近记录: |