簡體   English   中英

使用Log4Net創建ReadOnly日志文件

[英]Create a ReadOnly log file with Log4Net

我在c#中開發應用程序,創建2個日志文件(.txt文件):一個用於錯誤,另一個用於用戶進行的修改。 這兩個文件是使用log4net創建的。 我看到的問題是這些文件可以被編輯,因此被錯誤地改變了。

我想將這些文件設置為readonly,而log4net仍然可以寫入它們。 因為如果我只是更改文件中的屬性,則不會寫下一個日志。

有辦法做到這一點?

此外,應用程序的用戶可以從應用程序中打開此日志文件。 為此,我使用下一個代碼:

System.IO.FileInfo finfo = new System.IO.FileInfo("path");
if (finfo.Exists)
{
 //finfo.Attributes = System.IO.FileAttributes.ReadOnly; 
 // I don't use the previous line at the moment, because it blocks the followings logs.
 System.Diagnostics.Process.Start("path");
}

這是創建和調用記錄器的代碼:

public static class CLogger
{
   private static readonly ILog logger = LogManager.GetLogger(typeof(CLogger));

   static CLogger()
   {
      XmlConfigurator.Configure(new System.IO.FileInfo("path to .config file"));
   }

   public static void WriteLog(ELogLevel logLevel, String log)
   {
      if (logLevel.Equals(ELogLevel.DEBUG))
      {
         logger.Debug(log);
      }
      else if (logLevel.Equals(ELogLevel.ERROR))
            .
            .
            .          
      else if (logLevel.Equals(ELogLevel.WARN))
      {
                logger.Warn(log);
      }
   }
}

打電話給記錄器:

CLogger.WriteLog(ELogLevel.ERROR, ex.ToString());

基本上,如果應用程序在用戶權限下運行,則用戶最終必須擁有訪問文件的權限:如果他沒有,則應用程序也無法寫入此文件。

我會更改正在寫入日志的文件夾的權限。 Web服務器授予讀/寫,所有其他只讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM