我在loggingConfig.yml文件中有以下logger配置
version: 1
disable_existing_loggers: False
formatters:
simple:
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
handlers:
console:
class: logging.StreamHandler
level: DEBUG
formatter: simple
stream: ext://sys.stdout
file_handler:
class: logging.FileHandler
level: INFO
formatter: simple
filename: info.log
encoding: utf8
loggers:
my_module:
level: ERROR
handlers: [console]
propagate: no
root:
level: INFO
handlers: [console, file_handler]
以下python代码:
import logging
import logging.config
import yaml
with open('loggingConfig.yml', 'rt') as f:
config = yaml.safe_load(f.read())
logging.config.dictConfig(config)
logger = logging.getLogger(__name__)
logger.info('TestLogger')
这很好用,但现在我想在写模式下打开日志文件,而不是在追加模式下。 我无法找到任何使用yaml文件的示例,并以写入模式打开日志文件。
我发现,在写入模式下打开可以使用fileConfig
完成logging.config.fileConfig('logging.conf')
并在logging.conf文件中指定args:
args=('info.log', 'w')
有什么办法可以使用yaml文件或在源代码中操作配置来实现这个目的吗?
答案 0 :(得分:3)
尝试使用以下配置:
file_handler:
class: logging.FileHandler
level: INFO
formatter: simple
filename: info.log
encoding: utf8
mode: w
默认模式为'a',表示追加。关于here
的更多信息