namespace WebTest
{
public class Log
{
private static Log UniqueLog;
private string LogFolder;
private Log(string logFolder)
{
LogFolder = logFolder;
}
public static Log GetInstance(string logFolder)
{
if (UniqueLog == null)
{
UniqueLog = new Log(logFolder);
}
return UniqueLog;
}
public bool WriteLine(string msg)
{
DateTime NowDt = DateTime.Now;//現在時刻取得
string logFileName = LogFolder + "WEB" + NowDt.ToString("yyyyMMdd") + ".log";
if(Monitor.TryEnter (this, new TimeSpan(0,0,5)))
{
try
{
using (StreamWriter writer = new StreamWriter(logFileName, true, Encoding.GetEncoding("Shift_JIS")))
{
writer.WriteLine(String.Format("{0:HH:mm:ss}, {1}: {2}", NowDt, msg, "TestB その1"));
Thread.Sleep(10000);//実験用
writer.WriteLine(String.Format("{0:HH:mm:ss}, {1}: {2}", DateTime.Now, msg, "TestB その2"));
}
}
finally
{
Monitor.Exit(this);
}
return true;
}
else
return false;
}
}
/// <summary>
/// TestB の概要の説明です。
/// </summary>
public class TestB : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
private void Page_Load(object sender, System.EventArgs e)
{
if (Log.GetInstance(@"G:\MyData\VSWebProjects\WebTest\").WriteLine (Request.Url.AbsolutePath))
Label1.Text = "書ける";
else
Label1.Text = "書けない";
}
#region Web フォーム デザイナで生成されたコード
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: この呼び出しは、ASP.NET Web フォーム デザイナで必要です。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
|