我在C#Win Form App中使用log4net,我有启动/停止切换按钮 -
当我点击“开始”时,会加载log4net配置并创建日志文件 - 这是有效的。
但现在我想添加选项以单击“停止”按钮,停止记录器,当然释放文件,以便我可以使用openFileDialog
打开它,我在我的应用程序中使用StreamReader
读取日志文件文本以显示日志文件在多线textbox
。
您可以在运行时修改Threshold
。要停止记录,请将其设置为Off
。我已经在这个answer中展示了它是如何工作的。
在运行时停止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)
。
现在,您可以通过它的代理启用/禁用它。
这对我来说可以读取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);
}