0
Help us understand the problem. What are the problem?

posted at

updated at

[C#] もうとにかく今すぐデバッグのためのログを出力したいときのクラス/メソッド

もくじ

やりたいこと

C#でアプリをつくっているときに、もう何でもいいから今すぐ簡単にログを出力させて、それを見たい。
例えば、VisualStudioでデバッグ実行がしたくてもできないけど、どの経路を通ったかを知りたくて、でもMessageBoxは出したくない、というとき。

やり方

下記のような簡単なログ用クラスを貼り付けて使用する。
終わったら、クラスごと消す。

// using System.IO;
static class LogOnDesktop
{
    public static void WriteLogToDesktopLogFile(string line)
    {
        var logPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\log.log";

        File.AppendAllText(logPath, DateTime.Now.ToString("hh:mm:ss.fff") + "  " + line);
        File.AppendAllText(logPath, Environment.NewLine);
    }
}

で、このクラスのWriteLogToDesktopLogFile()を実行するとデスクトップにlog.logファイルができるが、そいつを以前書いた「Tailっぽくログを監視できるバッチファイル」を使ってリアルタイムで見てやれば、簡易的にログ監視体制の完成。

もしログに、ログを残したメソッド名を記録したければ、WriteLogToDesktopLogFile()を呼ぶときに下記のようにしてやればよい。

// using System.Reflection;
LogOnDesktop.WriteLogToDesktopLogFile(MethodBase.GetCurrentMethod().Name);

追記

下記ページのような方法もよさそう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?