2012-06-25 5 views
5

これはthis question, which is about a bash fileに似ています。Javaで同じ行にログオンする方法は?

私たちは、私たちはTestNGのテストを実行している間、コンソールに出力したログを作成しました:

private Log log = LogFactory.getLog(xyz.class); 

その後、テスト中に、ログは私たちが正確に何を知っているように細部で満たされています行われています:

log.info("Setting browser..."); 
this.browser = browser; 
log.info("Completed."); 

は今のところ、あなたが期待するようにして印刷しています:

Setting browser... 
Completed. 
Setting browser... 

を、後に数ミリ秒:私は、同じ行に、このプリントアウトしたいのですが

Setting browser...Completed. 

がたLogFactoryでこれは可能ですか?

+0

どのようなロギングフレームワークを使用しているかを教えていないと、どのように答えられるでしょうか? –

+0

@oxbow_lakes彼はApacheのものを使っているようです。 –

+0

私たちのMaven依存関係ではLog4Jが表示されていますが、F3を押すとコモンログになりますので、@ColinDは正しいと思います。 – rishimaharaj

答えて

5

あなたが明示的に他のどこでも改行文字を指定したい場合を除き、正確にあなたが使用しているたログライブラリを知らなければ、私は答えはほぼ確実ではありませんよね。

java.util.logging(およびLog4J)フレームワークを使用すると、フォーマッタをプラグインして文の書式を設定できます。改行文字で終わっていない書式を指定する必要があります。たとえば、Log4Jです。あなたは(%nは改行であり、他のものは時間が含まれており、ログレベルを、それぞれ%t%p、私は思う)%m以外すべてを削除した場合、彼らはそう

%-5p [%t]: %m%n 

として例のパターンを与え、改行は各ステートメントに自動的に付加されません。

log.info("I want this on one line\n"); 
+0

なぜこの回答は下降しましたか?それは、ええ、正解です! –

+0

なぜそれがdownvotedされたか分からないが、それは時間、スレッドなどをダンプするだろう。同じ行に改行を入れずに各msgを読み込み、判読不能にし、ログ分析ツールを破棄する。 –

+0

ああ、良い点。編集されました。 –

2

だけでは、ログを残す:

しかし、これは他のどこでも、あなたの他のログステートメントは次のようになりしなければならないことを意味します。より読みやすくしたい場合は、後処理してください。

注意しない限り、ログファイルを盗聴すると情報が失われます。例としてタイムスタンプを見てください。 Setting browswer..のログステートメントにタイムスタンプが含まれている場合、タイムスタンプなしでcompletedステートメントを入力すると情報が失われ、同じ行に2つのタイムスタンプが付いているように見えます。

関連する問題