私は23時間毎に15分ごとに実行されるアプリケーションを持っています。たいていの場合、それは目を覚ますものであり、処理して閉じるデータがないことがわかります。初期化と入力データのチェック中に、DEBUGログステートメントがコンソールに書き込むだけです。アプリケーションが処理するデータを見つけたら、ログファイルには何も書き込まれません(INFOレベル以上)。問題は、「処理するデータがない」実行は空のログファイルを作成していることです。これは1日にほぼ100回点灯するので、この動作は望ましくありません。Log4jは必要な前に空のファイルを作成します
これらのファイルが不必要な場合は手動で削除する方法を簡単に実装できますが、これはハッキーです。 Log4jが何かが実際に書き込まれるまでログファイルの作成を待つようにする方法はありますか?ありがとう! log4j.propertiesの
関連部分:
log4j.appender.myFileLogger=org.apache.log4j.RollingFileAppender
log4j.appender.myFileLogger.Append=false
log4j.appender.myFileLogger.File=D:/Imaging/myApp/logs/myApp_${current.date}.log
log4j.appender.myFileLogger.threshold=INFO
log4j.appender.myFileLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.myFileLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
あなたはHH削除することもできます:MM:あなたのファイル名からのSS部分を、毎日のログを持っていますか?私は、何も処理されていないことを知って、おそらく明示的にログに記録する価値があると思います。ああ、申し訳ありませんが、私は実際にあなたの質問への答えを持っていません。それは面白いです。 – dckuehn
ローリング・デイリー・ログは元々の解決策でした。入力データとしての奇妙な設定が都合が良いときにいつでも配信されるので、いくつかの入力ファイルを一度に配信して順次処理することができます。それぞれの処理実行/入力ファイルごとに1つのログファイルを取得することを希望しましたが、いずれの方向にも問題はありません。この時点でほとんどの好奇心:) – jfaulk919