• 类库封装log4net


    1、类库nuget添加log4net应用

    2、创建log4net.xml文件,并设置文件属性【复制到输出目录:始终复制】。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <configSections>
            <section name="log4net" allowLocation="true" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
        </configSections>
        <log4net>
            <root>
                <level value="DEBUG" />
                <appender-ref ref="RollingLogFileAppender" />
            </root>
            <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
                <param name="File" value="log/log-"/>
                <param name="AppendToFile" value="true"/>
                <param name="MaxSizeRollBackups" value="10"/>
                <param name="MaximumFileSize" value="10MB"/>
                <param name="StaticLogFileName" value="false"/>
                <param name="DatePattern" value="yyyyMMdd" log=""/>
                <param name="RollingStyle" value="Date"/>
                <layout type="log4net.Layout.PatternLayout">
                    <param name="ConversionPattern" value="%d  [%t]  %-5p  %c  [%x]  -  %m%n"/>
                </layout>
            </appender>
        </log4net>
    </configuration>

    3、类库AssemblyInfo.cs文件,添加:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]

    4、创建帮助类。

    public class LogHelper
        {
            private static readonly ILog Log= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
    
            //static LogHelper()
            //{
            //    Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            //}
    
            /// <summary>
            /// 记录调试信息
            /// </summary>
            /// <param name="ex">信息</param>
            public static void Debug(object message)
            {
                Log.Debug(message);
            }
    
            /// <summary>
            /// 记录警告信息
            /// </summary>
            /// <param name="ex">信息</param>
            public static void Warn(object message)
            {
                Log.Warn(message);
            }
    
            /// <summary>
            /// 记录错误信息
            /// </summary>
            /// <param name="ex">信息</param>
            public static void Error(object message)
            {
                Log.Error(message);
            }
    
            /// <summary>
            /// 记录重要提示信息
            /// </summary>
            /// <param name="ex">信息</param>
            public static void Info(object message)
            {
                Log.Info(message);
            }
    
            /// <summary>
            /// 记录信息和异常信息
            /// </summary>
            /// <param name="message">错误信息</param>
            /// <param name="ex">异常对象</param>
            public static void Debug(object message, Exception ex)
            {
                Log.Debug(message, ex);
            }
    
            /// <summary>
            /// 记录信息和异常信息
            /// </summary>
            /// <param name="message">错误信息</param>
            /// <param name="ex">异常对象</param>
            public static void Warn(object message, Exception ex)
            {
                Log.Warn(message, ex);
            }
    
            /// <summary>
            /// 记录信息和异常信息
            /// </summary>
            /// <param name="message">错误信息</param>
            /// <param name="ex">异常对象</param>
            public static void Error(object message, Exception ex)
            {
                Log.Error(message, ex);
            }
    
            /// <summary>
            /// 记录信息和异常信息
            /// </summary>
            /// <param name="message">错误信息</param>
            /// <param name="ex">异常对象</param>
            public static void Info(object message, Exception ex)
            {
                Log.Info(message, ex);
            }
    
        }
    请随手写下你的想法!!!
  • 相关阅读:
    Spring中的AOP实现思路
    手写IOC-SPRINGPMVC-CONNPOOL
    职责链模式
    判断一个二叉树是不是对称二叉树
    合并区间
    shell命令中用source 和sh(或者bash)执行脚本的区别,以及export的作用
    angular指令的compile,prelink 和 postlink以及controller
    angular的启动原理
    高并发优化方法
    搭建ssm框架的一个小坑
  • 原文地址:https://www.cnblogs.com/flywing/p/14663018.html
Copyright © 2020-2023  润新知