![](/img/trans.png)
[英]Create a ReadOnly log file with Log4Net AND Separate log in 2 files
[英]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.