当前位置: 首页 > ops >正文

log4net的使用

在这里插入图片描述

1添加引用

在这里插入图片描述

2添加配置文件 log4net.xml

<?xml version="1.0" encoding="utf-8"?>
<log4net><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" /></layout></appender><appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="INFO"><!--防止多线程时不能写Log,官方说线程非安全--><param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" /><param name="File" value="Logs/" /><param name="AppendToFile" value="true"/><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyy-MM-dd.'info.log'" /><param name="RollingStyle" value="Date"/><param name="MaxSizeRollBackups" value="10" /><param name="MaximumFileSize" value="5MB" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="## %d [%t] %-5p %x %m %n"/><!--<param name="ConversionPattern" value="%date [%thread] %-5level [%logger] %ndc - %message%newline" />--></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="INFO" /><param name="LevelMax" value="INFO" /></filter></appender><appender name="ErrorFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="ERROR"><param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" /><param name="File" value="Logs/" /><param name="AppendToFile" value="true"/><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyy-MM-dd.'error.log'" /><param name="RollingStyle" value="Date"/><param name="MaxSizeRollBackups" value="10" /><param name="MaximumFileSize" value="5MB" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%date [%thread] %-5level [%logger] %ndc - %message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="WARN" /><param name="LevelMax" value="ERROR" /></filter></appender><appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="ERROR"><param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" /><param name="File" value="Logs/" /><param name="AppendToFile" value="true"/><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyy-MM-dd.'debug.log'" /><param name="RollingStyle" value="Date"/><param name="MaxSizeRollBackups" value="10" /><param name="MaximumFileSize" value="5MB" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%date [%thread] %-5level [%logger] %ndc - %message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="DEBUG" /><param name="LevelMax" value="DEBUG" /></filter></appender><root><level value="All" /><appender-ref ref="LogFileAppender" /><appender-ref ref="ErrorFileAppender"/><appender-ref ref="DebugFileAppender" /><appender-ref ref="ConsoleAppender" /></root>
</log4net>

3 添加LogHelper类

using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace WindowsService1
{public static class LogHelper{public static void Info(object msg, params object[] parameters){var log = LogManager.GetLogger("log4netlogger");log.Info(msg);}public static void Debug(string msg){var log = LogManager.GetLogger("log4netlogger");log.Debug(msg);}public static void Error(string msg){var log = LogManager.GetLogger("log4netlogger");log.Error(msg);}public static void FormatError(string format, params object[] args){var log = LogManager.GetLogger("log4netlogger");log.Error(string.Format(format, args));}public static void Error(Exception ex){var log = LogManager.GetLogger("log4netlogger");log.Error(ex.Message, ex);}public static void Error(object msg, Exception ex){var log = LogManager.GetLogger("log4netlogger");log.Error(msg, ex);}public static void Warn(object msg, Exception ex){var log = LogManager.GetLogger("log4netlogger");log.Warn(msg, ex);}public static void Log(string msg){Info(msg);}public static void Log(Exception ex){Error(ex);}}
}

4使用

protected void Page_Load(object sender, EventArgs e){//加载log4net配置log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"\log4net.xml"));try{LogHelper.Info("-----------1001CloudServer 停止运行!");}catch (Exception E) {LogHelper.Error(E.Message);}}

5根目录下会多出一个logs文件夹

在这里插入图片描述

.net8 webapi中的使用如下:

/// 1.webapi添加log4net和Microsoft.Extensions.Logging.Log4Net.AspNetCore
/// 2.加一个log4net.config
/// 3.Program.cs添加配置builder.Logging.AddLog4Net(“log4net.config”);
/// 4.加一个LogHelper.cs
/// 5.Controllers中使用
/// 6.bin\Debug\net8.0\logs下生成txt.
/// 7.看error看第一行是错误信息,哪个方法报的错看有行号的内容
/// 写入 WebApi3\myWebapi\bin\Debug\net8.0\logs
在这里插入图片描述

下面展示一些 内联代码片

//Program.cs加
builder.Logging.AddLog4Net("log4net.config");
//另外加一个帮助类
public class Log4Helper
{/// <summary>/// 1.webapi添加log4net和Microsoft.Extensions.Logging.Log4Net.AspNetCore/// 2.加一个log4net.config/// 3.Program.cs添加配置builder.Logging.AddLog4Net("log4net.config");/// 4.加一个LogHelper.cs/// 5.Controllers中使用/// 6.bin\Debug\net8.0\logs下生成txt./// 7.看error看第一行是错误信息,哪个方法报的错看有行号的内容/// 写入  WebApi3\myWebapi\bin\Debug\net8.0\logs/// </summary>/// <param name="msg"></param>public static void Error(string msg){var log = LogManager.GetLogger("log4netlogger");log.Error(msg);}public static void Info(string msg){var log = LogManager.GetLogger("log4netlogger");log.Info(msg);}
}

log4net.config

<?xml version="1.0" encoding="utf-8"?>
<log4net><appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="INFO"><!--防止多线程时不能写Log,官方说线程非安全--><param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" /><param name="File" value="Logs/info/" /><param name="AppendToFile" value="true"/><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyy-MM-dd.'info.log'" /><param name="RollingStyle" value="Date"/><param name="MaxSizeRollBackups" value="10" /><param name="MaximumFileSize" value="5MB" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%newline%date [%thread] %-5level [%logger] %method - %message" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="INFO" /><param name="LevelMax" value="INFO" /></filter></appender><appender name="ErrorFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="ERROR"><param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" /><!--下面这行是内容放在哪里,Logs/error/是将txt放到logs文件夹下的error文件夹中--><param name="File" value="Logs/error/" /><param name="AppendToFile" value="true"/><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyy-MM-dd.'error.log'" /><param name="RollingStyle" value="Date"/><param name="MaxSizeRollBackups" value="10" /><param name="MaximumFileSize" value="5MB" /><layout type="log4net.Layout.PatternLayout"><!--下面这行是消息的内容模板--><param name="ConversionPattern" value="%newline%date [%thread] %-5level [%logger] %method - %message" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="ERROR" /><param name="LevelMax" value="ERROR" /></filter></appender><appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="ERROR"><param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" /><param name="File" value="Logs/debug/" /><param name="AppendToFile" value="true"/><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyy-MM-dd.'debug.log'" /><param name="RollingStyle" value="Date"/><param name="MaxSizeRollBackups" value="10" /><param name="MaximumFileSize" value="5MB" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%newline%date [%thread] %-5level [%logger] %ndc - %message" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="DEBUG" /><param name="LevelMax" value="DEBUG" /></filter></appender><root><level value="All" /><appender-ref ref="LogFileAppender" /><appender-ref ref="ErrorFileAppender"/><appender-ref ref="DebugFileAppender" /><appender-ref ref="ConsoleAppender" /></root></log4net>
http://www.xdnf.cn/news/11342.html

相关文章:

  • 一文教你认清领域模型和数据模型
  • 关闭Windows自动更新的6种方法
  • jqGrid的常用属性和方法
  • Java报表工具 JasperReports iReport
  • Cool Edit Pro是什么?Cool Edit Pro怎么用?
  • linux container框架,深度解析Containers--系统架构
  • 中间件之搜索和数据分析组件Elasticsearch
  • Struts与Struts2的区别
  • c++getline 读取一行内容
  • 《入门级-Cocos2d 4.0塔防游戏开发》---实战
  • 阮一峰ES6精缩——Promise对象
  • 扫码登录操作过程
  • 19-1 burpsuite模块介绍之repeater
  • 再生龙linux 系统运行,使用Clonezilla(再生龙)克隆Linux系统
  • GNOME 与 KDE:到底选择哪个 Linux 桌面环境
  • Oracle的PDB和CDB
  • 使用NAGA分析雀魂牌谱
  • 消息中间件的概念
  • Adhesive框架系列文章--Mongodb数据服务模块实现(上)
  • javascript:void(0) 含义
  • 网络知识点之-详解robots协议
  • 【Oracle】CBO优化详解
  • 服务等级目标SLO概述
  • 恶意网站的攻与妨
  • Java在云原生的破局利器——AOT(JIT与AOT)
  • 【Java开发语言 00】环境搭建(配置java环境+‘javac’不是内部或外部命令,也不是可运行的程序+安装idea+idea基本用法+新建项目+在新项目的src路径下新建包和类+基础调试+路径)
  • UPX的使用
  • bootstrap4 左侧导航栏 优秀 大气_7个冷门行业导航网站,冷门行业小伙伴的终极关怀(值得收藏)...
  • 11111111111111
  • Linux解压命令大全