static void WriteLog(String FullPath, String Log)
{
try
{
if (File.Exists(FullPath))
{
FileInfo Fi = new FileInfo(FullPath);
if (Fi.Length > MaxFileSize * 1024)
{
if (File.Exists(FullPath + ".Old"))
{
File.Delete(FullPath + ".Old");
}
File.Move(FullPath, FullPath + ".Old");
}
}
string currentFile = System.IO.Path.GetFileName(new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName());
int currentLine = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileLineNumber();
File.AppendAllText(@FullPath, "[ " + MyTime.Now.ToString("dd/MM/yy HH:mm:ss") + " ] " + currentFile + "," + currentLine + "," + Log.Replace("\r\n", "\r\n ") + "\r\n");
}
catch (Exception ex)
{
utilities.Log(ex.ToString());
}
}
こんにちは、私は自分のプログラムでロギング ユーティリティを作成しています。ログの一部で、スタックトレースを使用してプログラム実行中の currentFile 名と Current Line 番号を表示したいと思います。ただし、コードの次の行は、ログ utiltiy の現在のファイルと行を返します。
string currentFile = System.IO.Path.GetFileName(new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName());
int currentLine = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileLineNumber();
スタックトレースが呼び出し元の関数の現在のファイルと行番号を返すようにするにはどうすればよいですか?