如何停止log4net记录并释放最后一个文件

时间:2019-03-19 06:56:52

标签: c# winforms log4net

我在C#Win Form App中使用log4net,并且具有“开始/停止”切换按钮-

当我单击“开始”时,将加载log4net配置并创建日志文件-工作正常。

但是现在我想添加单击“停止”按钮的选项,以停止记录器,当然还要释放文件,以便可以使用应用程序中的openFileDialog打开该文件以读取日志文件带有StreamReader的文本,以在多行textbox上显示日志文件。

3 个答案:

答案 0 :(得分:1)

您可以在运行时修改Threshold。要停止记录,请将其设置为Off。我已经在此answer中展示了它的工作原理。

答案 1 :(得分:0)

运行时期间停止log4net要求修改其配置文件:

<level value="ALL" />

<level value="INFO" />

如果您无法更改配置文件,则应为log.debug()定义一个代理:

static public class LogDebugProxy
{
    static public bool LogDebug = false;
    static public void debug(log4net.ILog log)
    {
        if (LogDebug)
            log.debug();
    }
}

然后在整个项目中将log.debug()替换为LogDebugProxy.debug(log)

现在,您可以通过代理启用/禁用它。

答案 2 :(得分:0)

这对我来说可以读取log4net日志文件:

            string text;
            var fileStream = new FileStream(@"C:\logs\yourLogFile.log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
            {
                text = streamReader.ReadToEnd();
                MessageBox.Show(this, text);
            }