using System.Collections.Generic;
using System.Text;
using log4net;
using System.IO;
using System.Data;
namespace Tscc.Model
{
/// <summary>
/// 日志帮助类
/// </summary>
public class LogHelper
{
/// <summary>
/// 获取定义好的记录异常的具体日志对象
/// </summary>
public static readonly log4net.ILog errorLog = log4net.LogManager.GetLogger("Errorlog");
public static readonly log4net.ILog infoLog = log4net.LogManager.GetLogger("Infolog");
/// <summary>
/// 初始化log4net
/// </summary>
public static void SetConfig()
{
log4net.Config.DOMConfigurator.Configure();
}
public static void SetConfig(FileInfo configFile)
{
log4net.Config.DOMConfigurator.Configure(configFile);
}
/// <summary>
/// 记录错误日志
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void WriteErrorLog(string info, Exception e)
{
LogHelper.SetConfig();
errorLog.Error(info, e);
}
/// <summary>
/// 记录错误日志
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void WriteErrorLog(string info)
{
LogHelper.SetConfig();
errorLog.Error(info);
}
/// <summary>
/// 记录操作日志
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void WriteInfoLog(string info)
{
LogHelper.SetConfig();
infoLog.Info(info);
}
}
}
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<!--log4net记录错误日志配置节点-->
<log4net>
<logger name="Infolog">
<level value="Info"/>
<appender-ref ref="ADONetAppender"/>
</logger>
<logger name="Errorlog">
<level value="ERROR"/>
<appender-ref ref="ErrorAppender"/>
</logger>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="10"/>
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<!--<connectionString value="server=10.100.10.8;database=ZZRLxLinkSystemDB;user id=sa;password=tscc" />-->
<commandText value="INSERT INTO SiteLog ([LogDate],[Thread],[Level],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @message, @exception)"/>
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter>
<parameter>
<parameterName value="@thread"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread"/>
</layout>
</parameter>
<parameter>
<parameterName value="@log_level"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level"/>
</layout>
</parameter>
<parameter>
<parameterName value="@message"/>
<dbType value="String"/>
<size value="4000"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message"/>
</layout>
</parameter>
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="2000"/>
<layout type="log4net.Layout.ExceptionLayout"/>
</parameter>
</appender>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="Log/"/>
<param name="AppendToFile" value="true"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt""/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="Footer" value="
------------------------------------------------------------------------------------
"/>
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<!-- levels: DEBUG, INFO, WARN, ERROR, FATAL -->
<appender name="NHibernateFileLog" type="log4net.Appender.RollingFileAppender">
<file value="Logs/nhibernate.txt"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="100KB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
<file value="Logs/general.html"/>
<appendToFile value="true"/>
<maximumFileSize value="100KB"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="5"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n "/>
<param name="Footer" value="
<br>------------------------------------------------------------------------------------
</br>"/>
</layout>
</appender>
<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
<file value="Logs/data.txt"/>
<appendToFile value="true"/>
<maximumFileSize value="100KB"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="5"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<!-- levels: DEBUG, INFO, WARN, ERROR, FATAL -->
<root>
<level value="DEBUG"/>
<appender-ref ref="GeneralLog"/>
</root>
<logger name="NHibernate" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="NHibernateFileLog"/>
</logger>
<logger name="Pushable.Data" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="DataLog"/>
</logger>
</log4net>