文章目录

  • 一、log4net是什么?
  • 二、使用步骤
    • 1.添加配置文件
    • 2.Program使用配置文件
    • 3.封装log4net操作
      • 3.1新建一个类库,添加nuget包。
      • 3.2工具类
    • 4.使用方法

一、log4net是什么?

log4net是一个可以帮助程序员把日志信息输出到各种 不同目标的.net类库。它可以容易的加载到开发项目中,实现程序调试和运行的时候的日志信息输出,提供了比.net自己提供的debug类和trace 类的功能更多。log4net是从java下有卓越表现的log4j移植过来的。它是apache基金资助的项目的一部分。

二、使用步骤

1.添加配置文件

根目录下创建log4net.config配置文件

配置内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration><!-- This section contains the log4net configuration settings --><log4net><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" /></appender><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"><file value="logs/Error/" /><appendToFile value="true" /><rollingStyle value="Composite" /><staticLogFileName value="false" /><datePattern value="yyyyMMdd'.log'" /><maxSizeRollBackups value="10" /><maximumFileSize value="1MB" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date [%thread] %-5level - %message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="ERROR" /><!--配置该节点会监听的日志错误级别--><levelMax value="FATAL" /></filter></appender><appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender"><file value="logs/Warn/" /><appendToFile value="true" /><rollingStyle value="Date"/><datePattern value="yyyy-MM-dd'.log'"/><maxSizeRollBackups value="100" /><staticLogFileName value="false" /><encoding value="utf-8" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date [%thread] %-5level - %message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="WARN" /><levelMax value="WARN" /></filter></appender><appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender"><file value="logs/Info/" /><appendToFile value="true" /><rollingStyle value="Date"/><datePattern value="yyyy-MM-dd'.log'"/><maxSizeRollBackups value="100" /><staticLogFileName value="false" /><encoding value="utf-8" /><layout type="log4net.Layout.PatternLayout"><!--<conversionPattern value="%newline%date [%thread %-5level] %n %m%n" />--><conversionPattern value="%date [%thread] %-5level - %message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="TRACE " /><levelMax value="INFO" /></filter></appender><!-- Setup the root category, add the appenders and set the default level --><root><level value="ALL" /><appender-ref ref="ConsoleAppender" /><appender-ref ref="FileAppender" /><appender-ref ref="RollingLogFileAppender" /><appender-ref ref="WarnRollingFileAppender" /><appender-ref ref="InfoRollingFileAppender" /></root></log4net>
</configuration>

2.Program使用配置文件

在Program.cs类中添加代码

暂可先不引用nuget包,使用下方封装类库中间接引用即可

ILoggerRepository repository = LogManager.CreateRepository("LogRepository");
XmlConfigurator.Configure(repository, new FileInfo("Config/log4net.config"));

3.封装log4net操作

3.1新建一个类库,添加nuget包。

3.2工具类

创建工具类

内容如下:
输出时添加了日志的调用类和调用方法名,如不需要可自行删除。

public class LogUtil
{private static readonly ILog log = LogManager.GetLogger("LogRepository", typeof(LogUtil));/// <summary>/// 组织调用方法-日志信息/// </summary>/// <returns></returns>private static string GetCallerNameAndMsg(string msg){var callerMethod = new StackFrame(2, true)?.GetMethod();if (callerMethod == null){return msg;}return $"{callerMethod.DeclaringType.FullName }.{callerMethod.Name}-{msg}";}/// <summary>/// 日常日志/// </summary>/// <param name="msg"></param>/// <param name="obj"></param>public static void Info(string msg){if (log.IsInfoEnabled && !string.IsNullOrEmpty(msg)){log.Info(GetCallerNameAndMsg(msg));}}/// <summary>/// 警告日志/// </summary>/// <param name="msg"></param>/// <param name="obj"></param>public static void Warn(string msg){if (log.IsWarnEnabled && !string.IsNullOrEmpty(msg)){log.Warn(GetCallerNameAndMsg(msg));}}/// <summary>/// 错误日志/// </summary>/// <param name="msg"></param>/// <param name="obj"></param>public static void Error(string msg){if (log.IsErrorEnabled && !string.IsNullOrEmpty(msg)){log.Error(GetCallerNameAndMsg(msg));}}
}

4.使用方法

需要使用的项目引用Common类库,方法直接调用即可。

Common.Helper.LogUtil.Info("测试日志");

.Net6 WebAPI使用log4net记录日志相关推荐

  1. C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布

    C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows.Liux环境下程序发布 一. MVC含义 二.数据传输 1.控制器向视图传输数据 三.日志组件Log4net ...

  2. C#使用log4net记录日志

    1.下载 log4net 右键引用,选择 管理NuGet程序包,选择浏览,输入log4net,然后点击下载 2.在App.config中输入内容(不存在自己创建) <?xml version=& ...

  3. Windows服务使用log4net记录日志

    该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. 比较流行的日志组件有以下四种,Topshelf都有相应的组件提供 log4net NL ...

  4. .NET c#使用Log4net记录日志

    log4net记录日志 记录一个简单的加法案例: 第一步下载log4net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 同时 ...

  5. 在.Net程序中使用log4net记录日志(示例)

    log4j是java开发人员所熟悉,他提供了强大的日志记录功能,log4net是为.Net记录日志开发的.使用示例如下(C#): 1.app.config文件 <?xml version=&qu ...

  6. 转:C#使用Log4Net记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...

  7. 使用log4net记录日志到MySQL中 (转)

    http://www.cnblogs.com/kongxx/archive/2005/10/09/251073.aspx 在log4net是.net平台中日志记录的开源工具包,其中包括了很多记录日志的 ...

  8. 使用 Log4Net 记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...

  9. ASP.NET+MVC+使用+Log4net+记录日志笔记

    前言: 记录系统中的日志,是一个好的项目产品必备的一个环节.每一个产品最终的目的都是要交予客户使用,因为程序员代码的开发水平参差不齐,Bug就成为了项目运维成本最大的因素之一.如何降低项目运维的成本呢 ...

最新文章

  1. Java的Web项目使用DWR简单配置说明
  2. Linq学习笔记(三)
  3. Rsync+sersync同步配置
  4. CVPR 2018 论文解读集锦(9月26日更新)
  5. 《openssl 编程》之 RSA(转)
  6. iCOM组件(iComponent,应用或学习组件)
  7. VS11在Win8上的Metro应用
  8. 奇妙的安全旅行之DSA算法
  9. python数据挖掘课程】十七.社交网络Networkx库分析人物关系(初识篇)
  10. 云服务器饥荒_运用双腾讯云搭建《饥荒》多人联机服务器
  11. ajax无刷新提交表,Ajax无刷新提交表单和显示
  12. NYOJ 643 发短信(模拟)
  13. [2018.10.25 T3] 旅程
  14. 中国计算机学会推荐国际学术会议和期刊目录(2015 年)
  15. js中int转byte(-128—127)
  16. 计算机中求声音传输时间公式,混响时间常用的几种计算公式
  17. DDR3 内存带宽计算
  18. 报表工具能实现怎么的导出效果?
  19. JavaWeb如何判断账户密码
  20. 判断设备访问类型是PC端还是WAP端

热门文章

  1. python办公小应用_高效办公必备:Python—— 30分钟帮你干完一天的工作!
  2. 方舟JavaScript 引擎
  3. GXT之旅:第七章:MVC——GXT MVC的相关类
  4. SteamVR插件使用
  5. vr汽修仿真实训教学整体方案软件专业定制
  6. Docker基础:Docker Desktop community的手动更新方法
  7. Find My资讯|AirTag 正在帮更多人找到丢失的行李,Find My用处越来越大
  8. 学生成绩管理系统(三)
  9. 基于delphi的excel数据导入导出
  10. 高数知识点总结------极限