ASP.NET网站log4net记录

项目的需求是,使用log4net记录,并且记录用户的登录信息及状态,要用户添加的,修改,删除的操作日志,然后,我使用每天4个文本来记录的日志


步骤:

1.配置文件

  

<span style="font-size:14px;"><configuration>
    <configSections>
     <!--log4net connection-->
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
    </configSections> 

 <!--log4net configuration  start -->
    <log4net>
        <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
        <!-- Set root logger level to ERROR and its appenders -->
        <root>
            <level value="INFO"/> 
        </root>

        <logger name="SysLogin" >
            <level value="INFO"/> 
            <appender-ref ref="SystemLogin"/>
        </logger> 

        <logger name="SysAdd" >
            <level value="INFO"/> 
            <appender-ref ref="SystemAdd"/>
        </logger>

        <logger name="SysUpdate" >
            <level value="INFO"/> 
            <appender-ref ref="SystemUpdate"/>
        </logger>

        <logger name="SysDelete" >
            <level value="INFO"/> 
            <appender-ref ref="SystemDelete"/>
        </logger>  

        <!-- 这是记录登录信息 -->
        <appender name="SystemLogin" type="log4net.Appender.RollingFileAppender,log4net">
		    <!-- 文件路径 -->
            <param name="File" value="Log/Login/"/>
            <param name="AppendToFile" value="true"/>
            <param name="RollingStyle" value="Date"/>
            <!--一个文件只存储1MB大小,超出自动创建新的-->
            <param name="MaximumFileSize" value="1MB"/>
            <param name="DatePattern" value=""Login_Logs_"yyyyMMdd".txt""/>
            <!--是否只允许写于一个文件-->
            <param name="StaticLogFileName" value="false"/>
            <!--最小锁定模型以允许多个进程可以写入同一个文件-->
            <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" />
            <layout type="log4net.Layout.PatternLayout,log4net">
                <param name="ConversionPattern" value="%message %n"/>
                <param name="Header" value=""/>
                <param name="Footer" value=""/>
            </layout>
        </appender>

        <!-- 这是记录添加 -->
        <appender name="SystemAdd" type="log4net.Appender.RollingFileAppender,log4net">
            <param name="File" value="Log/Operation/"/>
            <param name="AppendToFile" value="true"/>
            <param name="RollingStyle" value="Date"/>
            <!--一个文件只存储1MB大小,超出自动创建新的-->
            <param name="MaximumFileSize" value="1MB"/>
            <param name="DatePattern" value=""MemberMng_Logs_"yyyyMMdd".txt""/>
            <!--是否只允许写于一个文件-->
            <param name="StaticLogFileName" value="false"/>
            <!--最小锁定模型以允许多个进程可以写入同一个文件-->
            <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock"/>
            <layout type="log4net.Layout.PatternLayout,log4net">
                <param name="ConversionPattern" value="%message %n"/>
                <param name="Header" value=""/>
                <param name="Footer" value=""/>
            </layout>
        </appender>
 
        <!-- 这是记录修改 --> 
        <appender name="SystemUpdate" type="log4net.Appender.RollingFileAppender,log4net">
            <param name="File" value="Log/Operation/"/>
            <param name="AppendToFile" value="true"/>
            <param name="RollingStyle" value="Date"/>
            <!--一个文件只存储1MB大小,超出自动创建新的-->
            <param name="MaximumFileSize" value="1MB"/>
            <param name="DatePattern" value=""CustomerMng_Logs_"yyyyMMdd".txt""/>
            <!--是否只允许写于一个文件-->
            <param name="StaticLogFileName" value="false"/>
            <!--最小锁定模型以允许多个进程可以写入同一个文件-->
            <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock"/>
            <layout type="log4net.Layout.PatternLayout,log4net">
                <param name="ConversionPattern" value="%message %n"/>
                <param name="Header" value=""/>
                <param name="Footer" value=""/>
            </layout>
        </appender> 
		
		 <!-- 这是记录删除 --> 
        <appender name="SystemDelete" type="log4net.Appender.RollingFileAppender,log4net">
            <param name="File" value="Log/Operation/"/>
            <param name="AppendToFile" value="true"/>
            <param name="RollingStyle" value="Date"/>
            <!--一个文件只存储1MB大小,超出自动创建新的-->
            <param name="MaximumFileSize" value="1MB"/>
            <param name="DatePattern" value=""CustomerMng_Logs_"yyyyMMdd".txt""/>
            <!--是否只允许写于一个文件-->
            <param name="StaticLogFileName" value="false"/>
            <!--最小锁定模型以允许多个进程可以写入同一个文件-->
            <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock"/>
            <layout type="log4net.Layout.PatternLayout,log4net">
                <param name="ConversionPattern" value="%message %n"/>
                <param name="Header" value=""/>
                <param name="Footer" value=""/>
            </layout>
        </appender> 

        <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
            <layout type="log4net.Layout.PatternLayout,log4net">
                <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
            </layout>
        </appender>
    </log4net>
    <!--log4net configuration  end -->
</configuration></span>


2.调用类

  

using log4net;

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace BLL
{
    /// <summary>
    /// log4net记录类
    /// </summary>
    public class LogHelper
    { 
        /// <summary>
        /// 记录登录信息
        /// </summary>  
        public static void WriteLogin(string message)
        {
            ILog loginfo = LogManager.GetLogger("SysLogin");
            if (loginfo.IsInfoEnabled)
            { 
                loginfo.Info(message);
            } 
        }

        /// <summary>
        /// 记录添加信息
        /// </summary>  
        public static void WriteAdd(string message) 
        {
            try
            {
                ILog loginLog = LogManager.GetLogger("SysAdd");
                if (loginLog.IsInfoEnabled)
                {
                    loginLog.Info(message);
                }
            }
            catch { }
        }

        /// <summary>
        /// 记录修改信息
        /// </summary>  
        public static void WriteModify(string message) 
        {
            try
            {
                ILog memberMngLog = LogManager.GetLogger("SysUpdate");
                if (memberMngLog.IsInfoEnabled)
                {
                    memberMngLog.Info(message);
                }
            }
            catch { }
        }

        /// <summary>
        /// 记录删除信息
        /// </summary> 
        public static void WriteDelete(string message)
        {
            try
            {
                ILog customerLog = LogManager.GetLogger("SysDelete");
                if (customerLog.IsInfoEnabled)
                {
                    customerLog.Info(message);
                }
            }
            catch { }
        }  
    }
}

3.至于调用该类

   LogHelper.WriteLogin("登录成功!2015-03-31 登录人:admin");

   然后我们可以去项目根路径下找Log/Login/     就可以查看txt文件了

  


  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。