[英]Can I add environment variables to a python logger ini file configuration?
我想通過logging.fileConfig()
function 中使用的log.ini file
在我的文件處理程序中使用環境變量添加自定義日志文件目錄。
我曾嘗試在以下內容中添加環境變量:
我的 logging.ini 看起來像這樣:
[loggers]
keys=root
[handlers]
keys=consoleHandler,fileHandler
[formatters]
keys=fileFormatter,consoleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler, fileHandler
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=WARNING
formatter=consoleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('${LOG_DIRECTORY_ENV_VARIABLE}/logname.log',)
我使用以下方法配置它:
from logging.config import fileConfig
fileConfig(f"{BASE_PATH}/resources/logging.ini")
我的代碼導致目錄為: path/to/file/${LOG_DIRECTORY_ENV_VARIABLE}/logname.log
我發現可以使用另一個線程的答案來解決我的問題
您可以從args
調用 python 函數。 由於os
已經導入到logging
中,您可以在不使用__import__('os').environ['']
情況下調用environ
。
...
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=(f'{os.environ[
"LOG_DIRECTORY_ENV_VARIABLE"]}/logname.log',)
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.