使用文件方式记录日志的配置
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="applog.txt" /><!--日志文件-->
<param name="AppendToFile" value="false" /><!--是否以最加的方式记录日志-->
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
当程序运行后,要读取日志文件以便分析的话会出现文件被另一进程占用的情况,主要原因是Log4Net此时正在使用此文件,并且已经锁定.
当很多时候我们要分析日志的内容,比如我在一个没有数据库的程序里面,要知道程序做了哪些事情.就需要分析了.
我的解决方案是:
public static String getFaBuLog()
{
//先复制一份防止冲突
string path = AppDomain.CurrentDomain.BaseDirectory.ToString() + "fabulog.txt";
string path2 = AppDomain.CurrentDomain.BaseDirectory.ToString() + "fabulog.txt.xhjtemp";
String re="";
if (File.Exists(path))
{
File.Copy(path, path2, true);
re = File.ReadAllText(path2, Encoding.Default);
}
if (File.Exists(path2))
{
File.Delete(path2);
}
return re;
}