分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

.net core2.0 中使用log4net

发布时间:2023-09-06 01:47责任编辑:胡小海关键词:暂无标签

一、nuget安装log4net

二、添加log4net.config配置文件

<?xml version="1.0" encoding="utf-8"?><configuration> ?<configSections> ???<!--添加自定义节点:log4net type:解析类名,程序集名(log4net.dll)--> ???<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> ?</configSections> ?<log4net> ???<root> ?????<!--<level value="DEBUG"/>--> ?????<!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF ?ALL表示允许所有的日志请求。OFF是拒绝所有的请求。--> ?????<!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录--> ?????<level value="ALL"/> ?????<!--根据log级别记录到不同的日志文件--> ?????<appender-ref ref="ErrorLog" /> ???</root> ???<!--Error--> ???<appender name="ErrorLog" type="log4net.Appender.RollingFileAppender"> ?????<file value="Log/"/> ?????<appendToFile value="true" /> ?????<rollingStyle value="Date" /> ?????<!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置--> ?????<DatePattern value="yyyyMMdd"_Error.log"" /> ?????<!--日志文件名是否为静态--> ?????<StaticLogFileName value="false"/> ?????<!--多线程时采用最小锁定--> ?????<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> ?????<!--布局(向用户显示最后经过格式化的输出信息)--> ?????<layout type="log4net.Layout.PatternLayout"> ???????<ConversionPattern value="%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message %newline" /> ?????</layout> ?????<securityContext type="log4net.Util.WindowsSecurityContext"> ???????<credentials value="Process" /> ?????</securityContext> ?????<filter type="log4net.Filter.LevelRangeFilter"> ???????<levelMin value="DEBUG" /> ???????<levelMax value="ERROR" /> ?????</filter> ???</appender> ???<!--Error--> ?</log4net></configuration>

三、编写loghelper

using GrabNovelApi;using log4net;using System;using System.Collections.Concurrent;using System.Collections.Generic;using System.Text;namespace Grab.api{ ?public static class LogHelper ???{ ???????private static readonly ConcurrentDictionary<Type, ILog> Loggers = new ConcurrentDictionary<Type, ILog>(); ???????/// <summary> ???????/// 获取记录器 ???????/// </summary> ???????/// <param name="source">soruce</param> ???????/// <returns></returns> ???????private static ILog GetLogger(Type source) ???????{ ???????????if (Loggers.ContainsKey(source)) ???????????{ ???????????????return Loggers[source]; ???????????} ???????????else ???????????{ ???????????????ILog logger = LogManager.GetLogger(Startup.repository.Name,source); ???????????????Loggers.TryAdd(source, logger); ???????????????return logger; ???????????} ???????} ???????/* Log a message object */ ???????/// <summary> ???????/// 调试信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Debug(object source, string message) ???????{ ???????????Debug(source.GetType(), message); ???????} ???????/// <summary> ???????/// 调试信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="ps">ps</param> ???????public static void Debug(object source, string message, params object[] ps) ???????{ ???????????Debug(source.GetType(), string.Format(message, ps)); ???????} ???????/// <summary> ???????/// 调试信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Debug(Type source, string message) ???????{ ???????????ILog logger = GetLogger(source); ???????????if (logger.IsDebugEnabled) ???????????{ ???????????????logger.Debug(message); ???????????} ???????} ???????/// <summary> ???????/// 关键信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Info(object source, object message) ???????{ ???????????Info(source.GetType(), message); ???????} ???????/// <summary> ???????/// 关键信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Info(Type source, object message) ???????{ ???????????ILog logger = GetLogger(source); ???????????if (logger.IsInfoEnabled) ???????????{ ???????????????logger.Info(message); ???????????} ???????} ???????/// <summary> ???????/// 警告信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Warn(object source, object message) ???????{ ???????????Warn(source.GetType(), message); ???????} ???????/// <summary> ???????/// 警告信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Warn(Type source, object message) ???????{ ???????????ILog logger = GetLogger(source); ???????????if (logger.IsWarnEnabled) ???????????{ ???????????????logger.Warn(message); ???????????} ???????} ???????/// <summary> ???????/// 错误信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Error(object source, object message) ???????{ ???????????Error(source.GetType(), message); ???????} ???????/// <summary> ???????/// 错误信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Error(Type source, object message) ???????{ ???????????ILog logger = GetLogger(source); ???????????if (logger.IsErrorEnabled) ???????????{ ???????????????logger.Error(message); ???????????} ???????} ???????/// <summary> ???????/// 失败信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Fatal(object source, object message) ???????{ ???????????Fatal(source.GetType(), message); ???????} ???????/// <summary> ???????/// 失败信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????public static void Fatal(Type source, object message) ???????{ ???????????ILog logger = GetLogger(source); ???????????if (logger.IsFatalEnabled) ???????????{ ???????????????logger.Fatal(message); ???????????} ???????} ???????/* Log a message object and exception */ ???????/// <summary> ???????/// 调试信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Debug(object source, object message, Exception exception) ???????{ ???????????Debug(source.GetType(), message, exception); ???????} ???????/// <summary> ???????/// 调试信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Debug(Type source, object message, Exception exception) ???????{ ???????????GetLogger(source).Debug(message, exception); ???????} ???????/// <summary> ???????/// 关键信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Info(object source, object message, Exception exception) ???????{ ???????????Info(source.GetType(), message, exception); ???????} ???????/// <summary> ???????/// 关键信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Info(Type source, object message, Exception exception) ???????{ ???????????GetLogger(source).Info(message, exception); ???????} ???????/// <summary> ???????/// 警告信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Warn(object source, object message, Exception exception) ???????{ ???????????Warn(source.GetType(), message, exception); ???????} ???????/// <summary> ???????/// 警告信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Warn(Type source, object message, Exception exception) ???????{ ???????????GetLogger(source).Warn(message, exception); ???????} ???????/// <summary> ???????/// 错误信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Error(object source, object message, Exception exception) ???????{ ???????????Error(source.GetType(), message, exception); ???????} ???????/// <summary> ???????/// 错误信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Error(Type source, object message, Exception exception) ???????{ ???????????GetLogger(source).Error(message, exception); ???????} ???????/// <summary> ???????/// 失败信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Fatal(object source, object message, Exception exception) ???????{ ???????????Fatal(source.GetType(), message, exception); ???????} ???????/// <summary> ???????/// 失败信息 ???????/// </summary> ???????/// <param name="source">source</param> ???????/// <param name="message">message</param> ???????/// <param name="exception">ex</param> ???????public static void Fatal(Type source, object message, Exception exception) ???????{ ???????????GetLogger(source).Fatal(message, exception); ???????} ???}}

四、使用

.net core2.0 中使用log4net

原文地址:https://www.cnblogs.com/WJ--NET/p/8708423.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved