私はロギングを伴う複数のモジュールを持つpythonプロジェクトを持っています。私はメッセージのロギングを開始する前に、すべてのモジュールで初期化(ログ設定ファイルの読み取りとルートロガーの作成とログの有効化/無効化)を行います。この初期化を1回だけ実行することは可能ですか(あるクラスではログと呼ばれるように)、プロジェクト全体に同じ設定が再利用されるようにできますか? 私は適切な解決策を探しています。一度だけ設定ファイルを読んで、一度ロガーを取得し、クラスコンストラクタで、またはおそらく初期化子(init .py)を取得して設定してください。これはクライアント側(_main_function内)です。私はこのログの初期化と設定を別々のクラスで1回だけ行い、ロギングが必要なときにこのクラスを他のモジュールで呼び出す必要があります。複数モジュールのロガーを使ってロギングを設定する/初期化する方法は、プロジェクト全体でPythonで一度だけですか?
0
A
答えて
0
メインエントリポイントでログを初期化して設定することができます。このHowto(Python 2.7)のLogging from multiple modulesを参照してください。
0
セットアップ使っ@Singletonパターン
#log.py
import logging.config
import yaml
from singleton_decorator import singleton
@singleton
class Log:
def __init__(self):
configFile = 'path_to_my_lof_config_file'/logging.yaml
with open(configFile) as f:
config_dict = yaml.load(f)
logging.config.dictConfig(config_dict)
self.logger = logging.getLogger('root')
def info(self, message):
self.logger.info(message)
#module1.py
from Log import Log
myLog = Log()
myLog.info('Message logged successfully)
#module2.py
from Log import Log
myLog = Log() #config read only once and only one object is created
myLog.info('Message logged successfully)
関連する問題
- 1. webpyで一度だけPythonクラスを初期化する
- 2. Pythonクラスをwebpyで一度だけ初期化する
- 3. クロムエクステンションで一度だけ初期化できる方法はありますか?
- 4. グローバル変数をtypescriptで一度だけ初期化する方法
- 5. Pythonループでデータ構造を一度初期化する方法
- 6. LibGDXで環境設定値を一度初期化する方法は?
- 7. Pythonセットアップのロギング設定は一度だけ
- 8. JMeterは一度だけグローバル変数を初期化します
- 9. フィクスチャを一度だけ初期化し、複数のテストケースで使用できますか?
- 10. 複数の関数キーワードを一度にPython 2で設定する方法は?
- 11. リフレクションクラスのみ一度だけ初期化
- 12. プロセスのクリティカルセクションを一度だけ初期化する
- 13. rakeタスクで実行されないように、サーバ初期化時に一度だけレールに定数を設定する方法はありますか?
- 14. Appのライフサイクル全体で一度だけ表示する
- 15. 一度だけイメージを複数回使用する方法:)
- 16. LRUキャッシュ:アプリケーション全体で1つだけ初期化しますか?
- 17. Log4netで特定のロガーのロギングをオフにする方法
- 18. Railsでコントローラ全体の変数を設定する方法は?
- 19. Javaで配列の一部を使ってリストを初期化する方法
- 20. 複数の空のベクトルを一度に初期化する
- 21. です。一度だけ選択するオプションを設定する方法
- 22. Pythonでは、関数の '定数'を一度だけ格納する方法はありますか?
- 23. プロジェクト全体のlog4jシステムを1か所で初期化するには?私のプロジェクトで
- 24. kotlinを使ってアンドロイドでウィジェットを初期化する方法
- 25. 複数のオブジェクトを一度に初期化する
- 26. Eclipseで、プロジェクト全体の環境変数を設定する方法(Ubuntu)
- 27. プロジェクト全体に対して単一のプロパティプレースホルダを設定する方法
- 28. asp.net MVCでWebサイトの設定を初期化する方法
- 29. 設定を使用します。グリッド全体ではなく特定の列にセルエディタを初期化します。
- 30. クエリーセット全体でDjango ModelFormsを初期化するには?