是否可以从log4net c#隐藏主文件?

问题描述 投票:0回答:1

是否可以隐藏用于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);
}
c# log4net
1个回答
0
投票

简而言之:将当前日志文件放置在隐藏的子文件夹中,并将已滚动的文件放置在根文件夹中。无需覆盖代码中的追加程序。

详细信息:您的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。

您可以创建子文件夹(当前),并以编程方式使其隐藏一次。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.