软件vs2019
我C#的winform程序中使用log4net记录日志,每天会生成两个文件记录,有一个文件可以正常生成,第二个文件为什么会多出一个而且文件名也不正常呢?
配置文件代码:
AssemblyInfo.cs文件:
AppConfig:
<log4net>
<root>
</root>
<logger name="logerror">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="ALL" />
<appender-ref ref="InfoAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<!--设置日志存储路径-->
<param name="File" value="log_data//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="1024" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="DatePattern" value="yyyy/MM/dd_error".log""/>
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常-----------------------------------------%exception%n%n " />
</layout>
<!--控制器,只记录级别在INFO-INFO之间的信息-->
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--设置日志存储路径-->
<param name="File" value="log_data//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="1024" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="DatePattern" value="yyyy/MM/dd_info".log"" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n消息描述:%message%n %m %n " />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO"/>
<param name="LevelMax" value="INFO"/>
</filter>
</appender>
</log4net>
我的loghelper:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kwin_LQ_PLCServer
{
class LogHelper
{
/// <summary>
/// 静态只读实体对象info信息
/// </summary>
public static readonly log4net.ILog Loginfo = log4net.LogManager.GetLogger("loginfo");
/// <summary>
/// 静态只读实体对象error信息
/// </summary>
public static readonly log4net.ILog Logerror = log4net.LogManager.GetLogger("logerror");
/// <summary>
/// 添加info信息
/// </summary>
/// <param name="info">自定义日志内容说明</param>
public static void WriteLog(string info)
{
try
{
if (Loginfo.IsInfoEnabled)
{
Loginfo.Info(info);
}
}
catch { }
}
/// <summary>
/// 添加异常信息
/// </summary>
/// <param name="info">自定义日志内容说明</param>
/// <param name="ex">异常信息</param>
public static void WriteLoge(string info)
{
try
{
if (Logerror.IsErrorEnabled)
{
Logerror.Error(info);
}
}
catch { }
}
}
}
输出的文件:
昨天的info文件生成了两个,今天只生成了一个,但文件名还是不正常,这问题该怎么解决呀