簡體   English   中英

我可以將環境變量添加到 python 記錄器 ini 文件配置嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM