前提
ログ書き込みメソッドはstaticクラスのstaticメソッドとする
サンプルプログラム概要
1.ログファイルを読み取り専用にする。読み取り専用にすることにより、
┗ログファイルがテキストエディタで開かれていても、プログラムから書き込み可能
┗プログラムが書き込み中でも、テキストエディタで開くことが可能
サンプルプログラム
● ログ書き込みメソッド
public static class Utility
{
private const string LOG_FILE_NAME = "C:\\Users\\user\\Desktop\\temp\\log.log";
private static FileInfo fileInfo;
/// ログファイルが存在しない場合、作成/書き込み/閉じる
/// 存在する場合、開いて/末尾に書き込み/閉じる
public static void WriteLog(string msg)
{
setReadOnry(LOG_FILE_NAME, false);
using (StreamWriter writer = new StreamWriter(File.Open(LOG_FILE_NAME, FileMode.Append, FileAccess.Write, FileShare.Read), Encoding.GetEncoding(932)))
{
writer.WriteLine("[" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "]"+ "\t" + msg);
}
setReadOnry(LOG_FILE_NAME, true);
}
/// ファイルが存在する場合のみ、読み取り専用属性を変更
private static void setReadOnry(string FileName, bool status)
{
fileInfo = new FileInfo(FileName);
if (fileInfo.Exists)
{
fileInfo.IsReadOnly = status;
}
}
}
●ログ書き込みメソッドを利用するプログラム
private void Button1_Click(object sender, RoutedEventArgs e)
{
//1秒毎に10回ログファイルへ書き込み
for (int i = 1; i <= 10; i++)
{
Utility.WriteLog("Test Message" + "\t" + i +"回目");
System.Threading.Thread.Sleep(1000);
}
}