クラウドウォッチからイベントログを収集し、2つのファイルに書き込み、各ファイルの内容をメールで送信するスクリプトを作成しました。私は2通の電子メールを受信したいように、各ロガーは、ログの異なるタイプを持って、私は2つのロガー作成:メインで2つの異なるロガーの2つのファイルハンドラーが同じ内容を取得
logLevel = logging.INFO
doWait = object()
if os.path.exists ('.debug'):
logLevel = logging.DEBUG
logger1 = logging.getLogger()
logger2 = logging.getLogger()
logger1.setLevel(logLevel)
logger2.setLevel(logLevel)
formatter = logging.Formatter('%(asctime)s :: %(levelname)s :: %(message)s')
fileHandler1 = os.path.join('/tmp/', 'error-admin-' + datetime.datetime.utcnow().strftime('%Y-%m-%d') + '.log')
fileHandler2 = os.path.join('/tmp/', 'error-user-' + datetime.datetime.utcnow().strftime('%Y-%m-%d') + '.log')
fh1 = logging.handlers.RotatingFileHandler(fileHandler)
fh2 = logging.handlers.RotatingFileHandler(fileHandler2)
fh1.setLevel(logLevel)
fh2.setLevel(logLevel)
fh1.setFormatter(formatter)
fh2.setFormatter(formatter)
logger1.addHandler(fh1)
logger2.addHandler(fh2)
を、私はそのような関数を呼び出す:今すぐ
function1(arg1,arg2,logger1)
function2(arg1,arg2,logger2)
、私の問題私がスクリプトを実行すると、両方のファイルハンドラーに同じ内容が得られます。たとえ、私がロガーを分離したとしても同じです。なぜそれが起こるのですか?
を、なぜそれが二つの異なる結果すべきですか? – iFlo
それぞれのロガーにはファイルハンドラーがあり、イベントを収集する関数を呼び出すと、eather logger1またはlogger2 @iFloを呼び出してログを書きたいファイルを指定します。 – JavaQueen