首页 > 编程语言 >C#添加log4日志

C#添加log4日志

时间:2023-04-07 14:15:19浏览次数:31  
标签:log4 obj C# void object public ._ logger 日志

第一步导入log4net

在vs的程序包管理器控制台中执行命令

NuGet\Install-Package log4net -Version 2.0.0

第二步加帮助类HttpHelper

using System;
using System.Reflection;
using log4net;
using log4net.Config;

namespace PuYangHiqs
{
    public class Logger
    {
        private static Logger _instance = null;
        private static object _locker = new object();
        private ILog _logger;

        private Logger()
        {
            XmlConfigurator.Configure();
            Type type =MethodBase.GetCurrentMethod().DeclaringType;
            this._logger = LogManager.GetLogger(type);
        }

        public static Logger Instance()
        {
            if (_instance == null)
            {
                lock (_locker)
                {
                    if (_instance == null)
                    {
                        _instance = new Logger();
                    }
                }
            }
            return _instance;
        }

        public void Debug(object obj)
        {
            this._logger.Debug(obj);
        }

        public void Error(object obj)
        {
            this._logger.Error(obj);
        }

        public void Fatal(object obj)
        {
            this._logger.Fatal(obj);
        }

        public void Info(object obj)
        {
            this._logger.Info(obj);
        }

        public void Warn(object obj)
        {
            this._logger.Warn(obj);
        }

        public void Debug(object obj, Exception e)
        {
            this._logger.Debug(obj, e);
        }

        public void Error(object obj, Exception e)
        {
            this._logger.Error(obj, e);
        }

        public void Fatal(object obj, Exception e)
        {
            this._logger.Fatal(obj, e);
        }

        public void Info(object obj, Exception e)
        {
            this._logger.Info(obj, e);
        }

        public void Warn(object obj, Exception e)
        {
            this._logger.Warn(obj, e);
        }

    }
}

 

第三步在配置文件中加入配置文件

 

 代码如下

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Logs/"/>
      <appendToFile value="true"/>
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <rollingStyle value="Date"/>
      <!--这是按日期产生文件夹-->
      <datePattern value="yyyyMM\\yyyyMMdd'.txt'"/>
      <!--是否只写到一个文件中-->
      <staticLogFileName value="false"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline"/>
      </layout>
    </appender>
    <root>
      <appender-ref ref="RollingFileAppender"/>
      <level value="WARN"/>
    </root>
  </log4net>

使用方法:

Logger.Instance().Error($"RisSendRegQueue(报到登记/取消登记),入参{json},出参{data}");

日志记录地址和文件命名

 

 

 

 

 

 



 

标签:log4,obj,C#,void,object,public,._,logger,日志
From: https://www.cnblogs.com/wangjian110520/p/17295937.html

相关文章

  • MFC-只运行一个实例
           ......
  • ABC212G
    ABC212G直接做不好做,考虑将\(x,y\)替换成某个幂的形式来试图去掉底数。记\(g\)为\(P\)的原根,那么\(x,y\)一定可以表示成\(g\)的某个在模意义下的幂,不妨设\(x\equivg^{i}(\bmodP),y\equivx^{j}(\bmodP)\)。那么原限制就变为了\(g^{i\timesn}\equivg^{j......
  • 免费分享前端面试题,vue面试题,TypeScript基础知识点 PDF格式
    免费分享前端资料,面试题,电子书接前端开发,带徒弟,一对一教学,远程协助,bug修改微信:......
  • 安装wsl的必备操作——开启CPU虚拟化——WslRegisterDistribution failed with error_
    参考:https://www.cnblogs.com/smdtxz/p/16837946.htmlhttps://www.cnblogs.com/wenonly/p/17206040.htmlhttps://blog.csdn.net/qq_41460654/article/details/118026986  ======================================================  因为实验室需要炼丹,而炼丹要用ubun......
  • 全文索引:Apache Lucene(一)
    做网站门户,全文检索功能必不可少。如何快速、准确的罗列出用户想要的查询结果,是查询的主要目标。模糊查询是最常见的查询,在做单一模块时,我们通常用Like来检索。【like'%张%'】即检索含有'张'字符的项,是从头开始-->的全文匹配。Like的查询原理就是使用索引和匹配算法,如果该......
  • K8S 1.24.1 helm 部署 kafka 和 kafka-console-ui
    背景IP角色中间件172.16.16.108k8s-master-1kafka,zookeeper172.16.16.109k8s-node-1kafka,zookeeper172.16.16.110k8s-node-2kafka,zookeeper部署kafkamkdir-p/data/yaml/klvchen/kafka&&cd/data/yaml/klvchen/kafka#添加bitnamichar......
  • Python源码笔记——Python对象机制的基石【PyObject】
    所有源码均基于Python3.11.21.PyObject定义//实际上没有任何东西被声明为PyObject,但是每个指向Python对象的指针都可以转换为PyObject*。//这是手动模拟的继承。同样的,每个指向可变大小的Python对象的指针也可以转换为PyObject*,此外,也可以转换为PyVarObject*。typedefst......
  • Oracle JDK 和 OpenJDK 有什么区别?
    可能在看这个问题之前很多人和我一样并没有接触和使用过OpenJDK。那么OracleJDK和OpenJDK之间是否存在重大差异?下面我通过收集到的一些资料,为你解答这个被很多人忽视的问题。对于Java7,没什么关键的地方。OpenJDK项目主要基于Sun捐赠的HotSpot源代码。此外,OpenJDK......
  • [记录]php url传参json json_decode 后 null
    从APP端或从其他页面post,get过来的数据一般因为数组形式。因为数组形式不易传输,所以一般都会转json后再发送。本以为发送方json_encode(),接收方json_decode(),就解决的问题,结果发现,json_decode()后是NULL。一般会反应是少了一个参数“true”,但是回去看就是 json_decode($data,tru......
  • 【IDEA】IDEA打包时clean报错Failed to delete......
    现象:控制台报Failedtocleanproject:Failedtodelete原因:target文件可能时编译的文件被其他程序占用,导致资源无法回收,网络上找到的解决办法,在此做一下记录。解决方案:1.在开始搜索框中输入“资源监视器”----切换到CPU页面-----在关联的句柄的输入框中----输入target,回车,就能找......