Tôi có một dự án python nhỏ có cấu trúc như sau -
Project
-- pkg01
-- test01.py
-- pkg02
-- test02.py
-- logging.conf
Tôi dự định sử dụng mô-đun ghi nhật ký mặc định để in thông báo ra thiết bị xuất chuẩn và tệp nhật ký. Để sử dụng mô-đun đăng nhập, một số khởi tạo được yêu cầu -
import logging.config
logging.config.fileConfig('logging.conf')
logger = logging.getLogger('pyApp')
logger.info('testing')
Hiện tại, tôi thực hiện việc khởi tạo này trong mọi mô-đun trước khi tôi bắt đầu đăng nhập thông điệp. Có thể thực hiện việc khởi tạo này chỉ một lần ở một nơi để các cài đặt tương tự được sử dụng lại bằng cách đăng nhập toàn bộ dự án không?
package/__init__.py
. Đó thường không phải là nơi bạn đặt if __name__ == '__main__'
mã. Ngoài ra, ví dụ của gái mại dâm có vẻ như nó sẽ gọi mã cấu hình vô điều kiện khi nhập, điều này không phù hợp với tôi. Nói chung, mã cấu hình ghi nhật ký nên được thực hiện ở một nơi và không nên xảy ra như là một tác dụng phụ của nhập ngoại trừ khi bạn đang nhập __main__.
if __name__ == '__main__'
? (nó không được đề cập rõ ràng trong câu hỏi nếu đây là trường hợp)
fileConfig
trong mọi mô-đun đăng nhập, trừ khi bạn cóif __name__ == '__main__'
logic trong tất cả các mô-đun . Câu trả lời của gái mại dâm không phải là thực hành tốt nếu gói là một thư viện, mặc dù nó có thể phù hợp với bạn - người ta không nên định cấu hình đăng nhập trong các gói thư viện, ngoài việc thêm mộtNullHandler
.