我創建了一個具有一些功能的類庫,並且維護一個日誌文件來跟蹤執行的步驟。如果我以調試模式運行此類庫,它正在成功創建日誌文件。安裝dll後日志文件不是由類庫創建的
但是,在創建該類庫的tlb文件並安裝到系統後,我創建了cab文件。現在我正在使用該庫,所有功能都正常工作,只有日誌文件沒有寫入。
我用代碼來創建日誌文件如下─
public static void LogTrace(string LogMessage)
{
try
{
string LogError = string.Empty;
String DirPath = string.Empty;
DirPath= Convert.ToString(ConfigurationSettings.AppSettings["DirPath"]);
LogError = Convert.ToString(ConfigurationSettings.AppSettings["LogError"]);
//if logging is not required
if (LogError.ToLower() == "true")
{
if (DirPath == null || DirPath == string.Empty)
DirPath = @"C:\LogAndError";
if (LogError == null || LogError == string.Empty)
LogError = "True";
//creation of date wise file name
string LogFileName = DirPath + "\\Log_ " + DateTime.Now.ToString("MM_dd_yyyy") + ".txt";
createLogAndErrorFile(DirPath);
StreamWriter streamWriter = null;
streamWriter = new StreamWriter(LogFileName, true);
streamWriter.WriteLine("Time :" + DateTime.Now.ToString() + " ");
streamWriter.WriteLine(LogMessage);
streamWriter.WriteLine(Environment.NewLine);
streamWriter.Flush();
streamWriter.Close();
}
}
catch
{
//We are not throwing any exception because all the exeption is logged using this method
//and throwing the exception could lead to recursive call of function.
}
}
public static void createLogAndErrorFile(string DirPath)
{
if (!Directory.Exists(DirPath))
Directory.CreateDirectory(DirPath);
}
}
我這麼想嗎?
我與它有沒有問題,使用,你的DirPath點在哪裏?如果(LogError.ToLower()==「true」)返回true,您是否擁有該目錄的寫權限? – coolmine
@CooLMinE我已經在DirPath中定義了「D:\ LogsAndErrors」。雖然它是在構建模式下運行時寫入日誌。但如果我在另一個項目中使用dll,那麼它不會寫入。 –
確保您在客戶端配置中定義了'LogError'或更改第一個if(LogError ==「true」)。我還建議,不要吞嚥錯誤,而是讓它拋出並處理異常或回退到事件日誌。 –