2

現在、ステータスをコンソールウィンドウに出力するアプリケーションをリファクタリングしています。現在、私は次のようなことをしています。

 Console.Write("Print some status.....")
 //some code 
 Console.WriteLine("Done!")

これは正常に機能しますが、すべてのロジックがconsole.writelinesの間に隠されており、読みにくくなっていることがわかりました。

これを行うためのより良い方法があるかどうかはわかりませんが、コンソールにアプリケーションのステータスを印刷するためのより良い/よりクリーンな方法を誰かが思いついたかどうかを尋ねてみたかっただけです。

何か案は?

4

3 に答える 3

3

Log4Net を見てみましょう。それはすべてを処理しますが、アプリにとってやり過ぎかもしれません。ただし、Log4Net を知っていると、いつかは役立つ可能性が高いので、これを学ぶ良い機会になるかもしれません。

于 2008-11-13T06:12:53.993 に答える
1

次に Log4Net を使用します。難しい部分を呼び出さずに使用するのは非常に簡単です。次のことを行うだけです。

log4net.Config.BasicConfigurator.Configure(new log4net.Appender.ConsoleAppender());

これにより、すべてのメッセージを stdout に記録する基本的なコンソール ロガーが設定されます。

ログが必要なクラスで、次のように新しい ILog を作成します。

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof (MyClass));

次に、ロギングが必要なメソッドで呼び出します

log.Debug("Print Some status ...");

このすべての設定と作業が完了したら。より有用なログを設定する方法については、Log4Net のドキュメントを参照してください。コード内のロギング呼び出しをまったく変更せずに、さまざまな種類のロギングを実行できます。

于 2008-11-14T00:06:01.450 に答える
0

エラーをテキストファイルに書き込むLoggerオブジェクトを使用してみませんか?次のような「優先度」のエラーメッセージが表示される場合があります。Logger.print(new priority( "important")、 "blabla"); このようにして、ファイル内で正確な時刻と必要なすべてのメッセージを見つけることができます。

どうしてもコンソールが必要な場合は、コンソールの優先度を使用できます。そのため、ネットワークエラーなど、ロガーに印刷するように指示した内容のみが印刷されます。

于 2008-11-13T04:44:53.220 に答える