首页 > 其他分享 >log4net 使用

log4net 使用

时间:2023-11-09 14:35:23浏览次数:36  
标签:log4net message static ex 使用 logger public

1:创建log4net 配置文件log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    </configSections>

    <log4net>
        <!-- 将日志写入到本地txt文件中 -->
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
            <!--日志路径-->
            <param name= "File" value= "logs"/>
            <!--是否是向文件中追加日志-->
            <param name= "AppendToFile" value= "true"/>
            <!--log保留天数-->
            <param name= "MaxSizeRollBackups" value= "10"/>
            <!--日志文件名是否是固定不变的-->
            <param name= "StaticLogFileName" value= "false"/>
            <!--日志文件名格式为:2008-08-31.log-->
            <param name= "DatePattern" value= "yyyy-MM-dd HH'.log'"/>
            <!--日志根据日期滚动-->
            <param name= "RollingStyle" value= "Date"/>
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value="%n%d 耗时%r毫秒 进程ID:%t 行号:%L 当前日志对象名称:%c 日志当前级别:%p 输出语句所在文件名:%F 日志消息:%m" />
            </layout>
        </appender>

        <!-- 控制台前台显示日志 -->
        <!--<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
            <mapping>
                <level value="ERROR" />
                <foreColor value="Red" />
            </mapping>
            <mapping>
                <level value="WARN" />
                <foreColor value="Yellow" />
            </mapping>
            <mapping>
                <level value="INFO" />
                <foreColor value="White" />
            </mapping>
            <mapping>
                <level value="DEBUG" />
                <foreColor value="Blue" />
            </mapping>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%n%d 程序运行时间:%r毫秒 进程ID:%t 行号:%L 当前日志对象名称:%c 日志当前级别:%p 输出语句所在文件名:%F 日志消息:%m" />
            </layout>
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="Info" />
                <param name="LevelMax" value="Fatal" />
            </filter>
        </appender>-->

        <!-- 将日志写入到SQLServer中 -->
        <!--<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
            <bufferSize value="1" />
            <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            <connectionString value="data source=.\MSSQL2008R2;initial catalog=MeiTuan;integrated security=false;persist security info=True;User ID=sa;Password=111111" />
            <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @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="255" />
                <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="@logger" />
                <dbType value="String" />
                <size value="255" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%logger" />
                </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>-->

        <root>
            <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
            <level value="all" />
            <!--<appender-ref ref="ColoredConsoleAppender"/>-->
            <appender-ref ref="RollingLogFileAppender"/>
            <!--<appender-ref ref="AdoNetAppender"/>-->
        </root>
    </log4net>
</configuration>

2:公共日志类:

public class Log4netHelper
    {
        private static readonly log4net.ILog logger = log4net.LogManager.GetLogger("Logger"); //这里的 Logger 和 log4net.config 里的名字要一样
        public static void Info(string message)
        {
            if (logger.IsInfoEnabled)
            {
                logger.Info(message);
            }
        }
        public static void Info(string message, Exception ex)
        {
            if (logger.IsInfoEnabled)
            {
                logger.Info(message, ex);
            }
        }

        public static void Debug(string message)
        {
            if (logger.IsErrorEnabled)
            {
                logger.Debug(message);
            }
        }
        public static void Debug(string message, Exception ex)
        {
            if (logger.IsErrorEnabled)
            {
                logger.Warn(message, ex);
            }
        }

        public static void Warn(string message)
        {
            if (logger.IsErrorEnabled)
            {
                logger.Warn(message);
            }
        }
        public static void Warn(string message, Exception ex)
        {
            if (logger.IsErrorEnabled)
            {
                logger.Warn(message, ex);
            }
        }

        public static void Error(string message)
        {
            if (logger.IsErrorEnabled)
            {
                logger.Error(message);
            }
        }
        public static void Error(string message, Exception ex)
        {
            if (logger.IsErrorEnabled)
            {
                logger.Error(message, ex);
            }
        }

        public static void Fatal(string message)
        {
            if (logger.IsErrorEnabled)
            {
                logger.Fatal(message);
            }
        }
        public static void Fatal(string message, Exception ex)
        {
            if (logger.IsErrorEnabled)
            {
                logger.Fatal(message, ex);
            }
        }
    }

3:Assemblyinfor 文件中添加如下代码

  [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

  注:
  1:log4net.config 文件必须放在客户端项目中,web项目放在web页面层
  2;logger.IsErrorEnabled,IsInfoEnabled,IsDebugEnabled,IsWarnEnabled,IsFatalEnabled 等属性要起作用,必须将log4net.config 文件的设置为始终复制或者如果较新则复制

 

标签:log4net,message,static,ex,使用,logger,public
From: https://www.cnblogs.com/leon1128/p/17819656.html

相关文章

  • Golang使用crontab
    要是记不住crontab格式,就去网上生成,在线crontab有很多。例如https://www.pppet.net/packagemainimport( "fmt" "github.com/robfig/cron/v3" "time")/**第一个*:second,范围(0-60)第二个*:min,范围(0-59)第三个*:hour,范围(0-23)第四个*:dayofmonth,......
  • 使用SSH远程连接Ubuntu服务器系统
    【前言】愿,所有相遇,都恰逢其时!愿,此刻心头,正满怀欣喜!---你好,朋友,欢迎你! ---对此篇博客中有任何问题和不懂的可以咨询QQ:2759590905实现目的:安装完Ubuntu系统后只能在Ubuntu命令行中输入命令,不能将外面的代码复制进Ubuntu命令行里面,所有本教程......
  • 开发时推荐使用Map map = new HashMap()
    Mapmap=newHashMap();Map是一个接口,HashMap是具体的实现类。由于接口就是多个类的共有规范(里面的抽象方法),是一种引用数据类型,一个抽象的概念,不能被实例化,因此接口需要由具体的类来实现。这条代码指明:由HashMap类来实现接口Map中描述的方法。HashMapmap=newHashMap(......
  • 如何安装 StoneDB 2.0 企业版? | StoneDB 使用教程 #2
    通过二进制TAR包安装(CentOS7.X)下载安装包stonedb-ee-8.0-v2.1.0.el7.x86_64.tar.gz下载地址:https://www.stoneatom.com/download解压安装包点击查看代码tar-zxvfstonedb-ee-8.0-v2.1.0.el7.x86_64.tar.gz-C/opt依赖检查点击查看代码ldd-r/opt/stonedb_v2/......
  • 文件存储引擎模块封装和使用分享
    背景需求在项目开发过程中,经常会使用到文件存储相关的功能,如:存储发票文件提供发票下载地址……调研诸如此类的功能就需要使用到本地存储或云服务商提供的存储功能。当然,这对于开发高手的zone来说都是小意思,上网一查,对象存储哪家强?​​第一位赫然显示了百家号创作者......
  • 文件存储引擎模块封装和使用分享
    背景需求在项目开发过程中,经常会使用到文件存储相关的功能,如:存储发票文件提供发票下载地址……调研诸如此类的功能就需要使用到本地存储或云服务商提供的存储功能。当然,这对于开发高手的zone来说都是小意思,上网一查,对象存储哪家强?​​第一位赫然显示了百家号创作者......
  • MathJax渲染Latex语法基本使用
    用Markdown写博客的时候,有时需要用到Latex来写数学公式,通过使用MathJax,我们可以让Markdown解析Latex数学表达式,同时Next主题也支持MathJax,所以了解一下Latex语法是十分有必要的。基础语法公式标记MathJax支持行内公式(inline)和陈列公式(displayed)。inline表示公式嵌入到文本段中,d......
  • apktool使用笔记-与系统不兼容
    apk重新打包后,新的android版本手机报"与系统不兼容"尝试更新apktool.jar,2.6更新到2.9,还是一样的情况网上搜索下相关的问题,可能原因是签名方式,以及对齐问题下载android-sdk,获取相关工具,这种功能很少,只能从sdk获取从sdk,jre复制相关文件过来,其中一个bat......
  • xcode 个人开发者账号免费使用
    先申请一个appIdxcode选择团队开发者账号真机签名......
  • Python中使用sqlalchemy操作数据库遇到密码包含@的处理方法
    欺骗性的oracle12514错误,这就有问题了,努力方向就不对了。。。密码包含@的处理方法使用sqlalchemy操作数据库的时候,遇到密码中包含@的时候会报错。因为它是通过@来链接IP地址的,遇到密码里有@就跟语法里的@混乱分不清了。编辑器就会报错。比如下面这个例子:用户名:XXXXX密码:1......