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

问题描述 投票:4回答:3

我在C#Win Form App中使用log4net,我有启动/停止切换按钮 -

当我点击“开始”时,会加载log4net配置并创建日志文件 - 这是有效的。

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

c# winforms log4net
3个回答
1
投票

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


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)

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


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);
            }
© www.soinside.com 2019 - 2024. All rights reserved.