返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >asp.net中Log4.net的工具类helper
  • 564
分享到

asp.net中Log4.net的工具类helper

2024-04-02 19:04:59 564人浏览 泡泡鱼
摘要

一、Config文件配置 <?xml version="1.0" encoding="utf-8" ?> <configuration> <conf

一、Config文件配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
  </configSections>
  <!-- Level的级别,由高到低 -->
  <!-- None > Fatal > ERROR > WARN > DEBUG > INFO > ALL-->
  <!-- 解释:如果level是ERROR,则在cs文件里面调用log4net的info()方法,则不会写入到日志文件中-->
  <log4net>
    
    <!--错误日志类-->
    <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">
      <!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质-->
      <param name="File" value="D:\winform\控制台\log4netDemo2\bin\Log\LogError\\" />
      <!--日志输出到exe程序这个相对目录下-->
      <param name="AppendToFile" value="true" />
      <!--输出的日志不会覆盖以前的信息-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--备份文件的个数-->
      <param name="MaxFileSize" value="10240" />
      <!--当个日志文件的最大大小-->
      <param name="StaticLogFileName" value="false" />
      <!--是否使用静态文件名-->
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <!--日志文件名-->
      <param name="RollingStyle" value="Date" />
      <!--文件创建的方式,这里是以Date方式创建-->
      <!--错误日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="&lt;BR&gt;&#xA;--------------------------------------------header------------------------------------------------&#xA;"/>
        <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n異常時間:%d [%t] &lt;BR&gt;%n異常級別:%-5p &lt;BR&gt;%n異常類:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
        <param name="Footer" value="&lt;BR&gt;&#xA;--------------------------------------------footer------------------------------------------------&#xA;"/>
      </layout>
    </appender>
    
    <!--信息日志附加介质-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\WinfORM\控制台\log4netDemo2\bin\Log\LogInfo\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxFileSize" value="10240" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <param name="RollingStyle" value="Date" />
      <!--信息日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <!--这3行表示日志输出的格式,若不喜欢这样的样式,可以查看下面的输出样式,自行修改-->
        <!--<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>-->
        <param name="Header" value="&lt;BR&gt;&#xA;--------------------------------------------header------------------------------------------------&#xA;"/>
        <param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日誌時間:%d [%t] &lt;BR&gt;%n日誌級別:%-5p &lt;BR&gt;%n日誌類:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
        <param name="Footer" value="&lt;BR&gt;&#xA;--------------------------------------------footer------------------------------------------------&#xA;"/>
      </layout>
    </appender>
    
    <!--如下定义的其他输入方式-->
    <!--定义输出到控制台命令行中-->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>


    <!--定义输出到windows事件中-->
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

    <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->
    <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
      <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
      <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
      <!--定义各个参数-->
      <parameter>
        <parameterName value="@logDate" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@thread" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%thread" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logLevel" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%level" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logger" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
    </appender>

    <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
    <root>
      <!--文件形式记录日志-->
      <appender-ref ref="LogFileAppender" />
      <!--控制台控制显示日志-->
      <!--<appender-ref ref="ConsoleAppender" />-->
      <!--Windows事件日志-->
      <!--<appender-ref ref="EventLogAppender" />-->
      <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉
                <appender-ref ref="AdoNetAppender_Access" />
      -->
    </root>
  </log4net>
  <startup>
    <supportedRuntime version="v4.0" sku=".netFramework,Version=v4.5" />
  </startup>
</configuration>

二、LogHelper工具类代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace log4netDemo2
{
    public class LogHelper
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");//这里的 loginfo 和 log4net.config 里的名字要一样
        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");//这里的 logerror 和 log4net.config 里的名字要一样

        //INFO
        public static void WriteLog(string info)
        {
            if (loginfo.IsInfoEnabled)
            {
                loginfo.Info(info);
            }
        }

        //ERROR
        public static void WriteLog(string info, Exception ex)
        {
            if (logerror.IsErrorEnabled)
            {
                logerror.Error(info, ex);
            }
        }
    }
}

三、测试代码

using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace log4netDemo2
{
    class Program
    {
     
        static void Main(string[] args)
        {
            try
            {
                string a = "FF";
                LogHelper.WriteLog(a);
                int b = Convert.ToInt32(a);           
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex.Message.ToString(), ex);
            }
        }
    }
}

四、测试输出

loginfo

logerror

到此这篇关于Log4.net工具类helper的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: asp.net中Log4.net的工具类helper

本文链接: https://lsjlt.com/news/146458.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • asp.net中Log4.net的工具类helper
    一、Config文件配置 <xml version="1.0" encoding="utf-8" > <configuration> <config...
    99+
    2024-04-02
  • 详解C#中Helper类的使用
    目录使用背景使用方法1.引用CSRedisCore2.增加helper类代码3.使用4.说明结语使用背景 项目中用户频繁访问数据库会导致程序的卡顿,甚至堵塞。使用缓存可以有效的降低用...
    99+
    2024-04-02
  • .NET中的Husky工具及安装方式
    今天不讲技术,讲一讲工具。对于会前端开发程序员来说前端工程化工作流中有个常用的工具 Husky ,它方便我们在项目中添加 git hooks 在代码提交前自动检查编码规范,或对填写的...
    99+
    2024-04-02
  • 工具类之关于RestTemplateUtil工具类的使用
    目录工具类-RestTemplateUtil工具类代码可直接复制使用RestTemplate配置类和工具类工具类-RestTemplateUtil工具类 代码可直接复制使用 配置Re...
    99+
    2022-11-13
    工具类使用  RestTemplateUtil工具类 RestTemplateUtil的使用
  • .net的反编译工具有哪些
    这篇文章主要介绍了.net的反编译工具有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇.net的反编译工具有哪些文章都会有所收获,下面我们一起来看看吧。Reflector   ...
    99+
    2023-06-27
  • 【JAVA高级】——吃透JDBC中的封装工具类、ORM和Date工具类
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:乐趣国学的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:JAVA开发者成长之路 ...
    99+
    2023-08-31
    数据库 java mysql
  • Spring中的工具类有哪些
    这篇文章给大家介绍Spring中的工具类有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。文件资源操作Spring 定义了一个 org.springframework.core.io.Resource 接口,Reso...
    99+
    2023-05-31
    spring
  • Java中RedisUtils工具类的使用
    目录前言一.pom.xml引入所需依赖二.RedisUtils工具类三.如何使用工具类四.工具类中批量更新Redis Hash详解总结前言 本文将提供一个redis的工具类,可以用在...
    99+
    2024-04-02
  • Java中的工具类有哪些
    这期内容当中小编将会给大家带来有关Java中的工具类有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如下所示:工具类功能BeanUtils提供了对于JavaBean进行各种操作,克隆对象,属性等等Be...
    99+
    2023-05-31
    java 工具类 ava
  • ASP.NET MVC 2中如何使用开源工具Nupack
    今天就跟大家聊聊有关ASP.NET MVC 2中如何使用开源工具Nupack,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Nupack是一个打包好的.NET工具集,Nupack团队开...
    99+
    2023-06-17
  • Weblogic60中打包时Helper类的位置是什么
    这篇文章主要讲解了“Weblogic60中打包时Helper类的位置是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Weblogic60中打包时Helper类的位置是什么”吧!Weblo...
    99+
    2023-06-03
  • Glimpse 调试工具:ASP.NET 开发者的救赎
    ...
    99+
    2024-04-02
  • 报表工具的分类
    报表工具的分类[@more@]从目前的应用来看,报表工具主要从以下几个方面来分:(1)从技术路线来分:JAVA报表、非JAVA报表。随着B/S的应用越来越多,走JAVA路线的用户对纯JAVA报表工具的需求越来越大。非JAVA报表一是厂家出于...
    99+
    2023-06-03
  • ASP.NET Core:Visual Studio中的强大工具,释放你的开发潜力
    ...
    99+
    2024-04-02
  • .NET老程序员推荐的7个开发类工具分别是什么
    小编今天带大家了解.NET老程序员推荐的7个开发类工具分别是什么,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“.NET老程序员推荐的...
    99+
    2023-06-17
  • Java中有哪些常用的工具类
    今天就跟大家聊聊有关Java中有哪些常用的工具类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、线程协作、控制并发流程的工具类 什么是控制并发流程?控制并发流程的工具类,...
    99+
    2023-06-15
  • Java中Lang包的工具类有哪些
    今天就跟大家聊聊有关Java中Lang包的工具类有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Lang 中工具类比较多,这里介绍几个主要的:  ClassUtils: ...
    99+
    2023-05-31
    java lang ava
  • 详解Spring中BeanUtils工具类的使用
    目录简介Spring的BeanUtils方法Spring的BeanUtils与Apache的BeanUtils区别实例简介 说明 本文介绍Spring的BeanUtils工具类的用法...
    99+
    2024-04-02
  • Java中的时间工具类有哪些
    Java中的时间工具类有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体如下:package org.zhy.date;import java.text.DateForm...
    99+
    2023-05-31
    java ava
  • 洞悉 ASP.NET 的运作:Glimpse 调试工具指南
    ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作