在我的应用程序中,每次应用程序启动时都会生成一个新的日志文件。但是,这不是我想要的,因为有时候,由于在不同时间打开和关闭我的应用程序10次,我最终会得到10个日志文件。
我希望我的日志文件名为Log_LOGFILECREATEDDATE_LOGFILECREATEDTIME.txt
。无论我启动应用程序多少次,该应用程序中执行的所有后续事件都将记录到该日志文件中。只有在重命名或删除旧日志文件时,才应创建新的日志文件。
App.config中的代码
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="D:\Log_%date{yyyyMMdd_HHmmss}.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{dd-MMM-yyyy HH:mm:ss,fff} %level - %message%newline" />
</layout>
</appender>
我如何记录我的应用程序
public class ABC{
private static readonly log4net.ILog logMe = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
....
function A(int a)
{
...
logMe.Info("function A done!")
}
}
答案 0 :(得分:0)
将您的配置<file type="log4net.Util.PatternString" value="D:\Log_%date{yyyyMMdd_HHmmss}.txt" />
更改为log4net.Util.PatternString" value="D:\Log_myapplicationname.txt" />
但是在制作中你最终会得到一个大文件,所以请考虑RollingFileAppender - https://logging.apache.org/log4net/release/config-examples.html
答案 1 :(得分:0)
我不相信有一种方法可以让log4net扫描目录中所有符合您&#34;模式的文件&#34;并选择最新的,这基本上是你要求它做的。每次应用程序启动时,如何使用静态文件名并记录启动时消息?