博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET Core使用log4net记录日志
阅读量:6227 次
发布时间:2019-06-21

本文共 2854 字,大约阅读时间需要 9 分钟。

 

  .NET常用的日志组件有NLog、Log4net等,.NET CORE下微软也自带了日志组件,到目前为止还没用过,而我本人常用的是log4net,下面简单讲讲.NET CORE下怎么使用log4net记录日志。

  新建一个ASP.NET CORE项目,为项目添加log4net程序包,

  

 

  并添加log4net.config文件,

  

 log4net.config文件配置如下:(log4net的具体配置我就不讲了,博客园里很多)

  接下来编写一个记录日志的公共类代码如下:(本人看到有些开发者将ILog对象直接返回,在调用的时候直接调用ILog对象的方法,这样会造成调用的类库中都必须引用log4net类库,很麻烦,像如下封装后调用的地方只需要引用Logger类所在类库即可)

public class Logger    {        private static ILog logger;        static Logger()        {            if (logger == null)            {                var repository = LogManager.CreateRepository("NETCoreRepository");                //log4net从log4net.config文件中读取配置信息                XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));                logger = LogManager.GetLogger(repository.Name, "InfoLogger");            }        }        ///         /// 普通日志        ///         ///         ///         public static void Info(string message, Exception exception = null)        {            if (exception == null)                logger.Info(message);            else                logger.Info(message, exception);        }        ///         /// 告警日志        ///         ///         ///         public static void Warn(string message, Exception exception = null)        {            if (exception == null)                logger.Warn(message);            else                logger.Warn(message, exception);        }        ///         /// 错误日志        ///         ///         ///         public static void Error(string message, Exception exception = null)        {            if (exception == null)                logger.Error(message);            else                logger.Error(message, exception);        }    }

  接下来就是在任意控制器或者类中使用刚编写的Logger类来记录日志到文件中

[HttpPost("list")]        public async Task
CarList() { var msg = await service.GetCarList(Request); Logger.Info(JsonConvert.SerializeObject(msg));//此处调用日志记录函数记录日志 return Json(msg); }

  记录的日子在Log文件目录中:

打开文件查看日志内容如下所示:

 

 如果需要限制历史日志文件保存最大数量,请将<rollingStyle value="Composite" />改为:<rollingStyle value="Size" />,此时,maxSizeRollBackups配置才会生效。

修改后的log4net.config内容如下:

 

注意,如果Logger类中抛出FileNotFoundException异常,说明目录下未找到log4net.config文件,这时请在项目log4net.config文件上右键——属性——将“复制到输出目录”项的值改为“始终复制”即可。

转载于:https://www.cnblogs.com/pudefu/p/9300697.html

你可能感兴趣的文章
nginx在reload时候报错invalid PID number
查看>>
神经网络和深度学习-第二周神经网络基础-第二节:Logistic回归
查看>>
Myeclipse代码提示及如何设置自动提示
查看>>
c/c++中保留两位有效数字
查看>>
ElasticSearch 2 (32) - 信息聚合系列之范围限定
查看>>
VS2010远程调试C#程序
查看>>
[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
查看>>
由String类的Split方法所遇到的两个问题
查看>>
Python3.4 12306 2015年3月验证码识别
查看>>
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
查看>>
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
JDBC的事务
查看>>
Io流的概述
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
《别做正常的傻瓜》的一些读书心得
查看>>
作业:实现简单的shell sed替换功能和修改haproxy配置文件
查看>>
Altium 拼板方法以及 注意的 地方
查看>>