[英]python packages and logging best practices
我正在構建一個 Python pip package 我想知道關於設置記錄器的最佳實踐是什么。
目前,我在文件系統上的項目樹結構大致如下所示:
root
|
|
|- my_proj/
| |
| |- sub_one/
| |- sub_two/
| |
| __init__.py
| app.py
|
|
setup.py
我正在__init__.py
中設置我的記錄器,如下所示
# contents of __init__.py
logger = logging.getLogger(__name__)
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s:%(levelname)s:%(message)s"
)
然后,每當我想記錄一些東西時,我都有一段類似於這樣的代碼:
import logging
logger = logging.getLogger(__name__)
def add_two(x):
logger.info('Increasing by 2')
return x + 2
你認為這種方式有什么問題嗎? (忽略我在下面描述的內容,假設我沒有做 package...)
由於我正在構建一個 pip package,當作為庫導入時,我的 package(我認為)將接管記錄設備更改格式等,這不是標准做法,也是不可取的。 如果我理解得很好,調用代碼應該注冊/設置一個記錄器,類似於:
pip install my_proj
import my_proj
my_proj.register_logger()
我不太明白這是怎么做到的。 順便問一下,這是好習慣嗎? 有沒有人有任何例子。 在我的代碼中,如果調用代碼注冊了記錄器,我應該如何調用記錄器以便打印消息。
文檔中描述了登錄庫的最佳實踐。 跟着那個就行了。 如果要測試庫的日志記錄,可以在測試代碼中配置日志記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.