是否可以隐藏用于log4net c#的主文件?使用log4net时,请在配置文件中设置创建日志文件并在其中进行日志记录的路径。路径中文件的名称是进行日志记录的位置,并以此为基础,每小时记录一次内容时,我都会创建一个文件。
我可以将文件设置为隐藏,但比我无权访问。
您能为我提供一个解决方案吗,我仍然可以每小时根据配置文件创建日志文件,但是该进程访问的主文件被隐藏了?我一直在寻找类似的东西,但什么也没发现。
这是我使用的代码:
<appender name="ExampleLog" type="RollingFileAppender">
<file value="Logs/Log.txt" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMddHH" />
<maxSizeRollBackups value="240" />
<maximumFileSize value="20MB" />
<CountDirection value="1" />
<PreserveLogFileNameExtension value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyy/MM/dd HH:mm:ss:fff} %message%newline" />
</layout>
</appender>
public override void OpenFile(string fileName, bool append)
{
fileName = File;
FileInfo fileInfo = new FileInfo(fileName);
fileInfo.Attributes = FileAttributes.Hidden;
base.OpenFile(fileName, append);
}
简而言之:将当前日志文件放置在隐藏的子文件夹中,并将已滚动的文件放置在根文件夹中。无需覆盖代码中的追加程序。
详细信息:您的log4net配置应如下所示:
<appender name="ExampleLog" type="log4net.Appender.RollingFileAppender">
<file value="Log\\Current\\.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="'..\\'yyyyMMddHH" />
<maxSizeRollBackups value="240" />
<maximumFileSize value="20MB" />
<CountDirection value="1" />
<PreserveLogFileNameExtension value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyy/MM/dd HH:mm:ss:fff} %message%newline" />
</layout>
</appender>
请注意,没有文件名,并且以'.. \'结尾。另外,PreserveLogFileNameExtension应该设置为true。
您可以创建子文件夹(当前),并以编程方式使其隐藏一次。