ABP框架—后台:日志log4net(9)

2023-12-18 11:58
文章标签 日志 框架 后台 log4net abp

本文主要是介绍ABP框架—后台:日志log4net(9),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Nuget引入log4net依赖包


如图:

官方地址:http://logging.apache.org/log4net


二、Startup中配置log4net

在ConfigureServices方法中使用容器添加log4net以及配置log4net.config

public class Startup
{public IServiceProvider ConfigureServices(IServiceCollection services){//.............//.............// Configure Abp and Dependency Injectionreturn services.AddAbp<PDWebHostModule>(// Configure Log4Net loggingoptions => options.IocManager.IocContainer.AddFacility<LoggingFacility>(f => f.UseAbpLog4Net().WithConfig("log4net.config")));}
}

二、log4net.config配置


默认配置:

<?xml version="1.0" encoding="utf-8" ?>
<log4net><appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" ><file value="App_Data/Logs/Logs.txt" />  --写入制定文件<appendToFile value="true" />    --true 日志追加写入文件--Size 文件大小进行拆分日志文件Logs.txt --创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite<rollingStyle value="Size" />    --备份日志数目,默认为0。在CountDirection为负数时有效。<maxSizeRollBackups value="10" />--当RollingStyle为Composite或Size,这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节)<maximumFileSize value="10000KB" />--True 日志文件是否为静态--True/false,默认为true。为true时,RollingStyler的date值将无效。且为true时,需要在file里指定文件名,所有日志都会记录在这个文件里。<staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"><conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />   --日志格式</layout></appender><root><appender-ref ref="RollingFileAppender" />--Log4net的日志等级从低到高依次分为:ALL ---> DEBUG ---> INFO ---> WARN ---> ERROR ---> FATAL ---> OFF--DEBUG及DEBUG以下级别都进行记录日志<level value="DEBUG" /> </root>
</log4net>

当需要把不同级别日志进行分文件记录时,进行如下配置:
 

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="DEBUG"><file value="App_Data/Logs/Debug/" /> --日志文件路径 <appendToFile value="true" /><DatePattern value="yyyy-MM-dd_HH&quot;.txt&quot;"/> --日志文件命名格式<RollingStyle value="Date"/>  --Date日期命名<staticLogFileName value="false" />  --false 日志文件动态命名<layout type="log4net.Layout.PatternLayout"><conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="DEBUG" /><param name="LevelMax" value="DEBUG" /></filter></appender><appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="INFO"><file value="App_Data/Logs/Info/" /><appendToFile value="true" /><DatePattern value="yyyy-MM-dd_HH&quot;.txt&quot;"/><RollingStyle value="Date"/><staticLogFileName value="false" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="INFO" /><param name="LevelMax" value="INFO" /></filter></appender><appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="WARN"><file value="App_Data/Logs/Warn/" /><appendToFile value="true" /><DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/><RollingStyle value="Date"/><staticLogFileName value="false" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="WARN" /><param name="LevelMax" value="WARN" /></filter></appender><appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="ERROR"><file value="App_Data/Logs/Error/" /><appendToFile value="true" /><DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/><RollingStyle value="Date"/><staticLogFileName value="false" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="ERROR" /><param name="LevelMax" value="ERROR" /></filter></appender><root><level value="All" /><appender-ref ref="DebugRollingFileAppender" /><appender-ref ref="InfoRollingFileAppender" /><appender-ref ref="WarnRollingFileAppender" /><appender-ref ref="ErrorRollingFileAppender" /></root></log4net>

三、手动记录日志

当程序运行时,ABP内部已经记录了日志,如果我们需要更加详细的手动记录日志也是可以的。 在Application应用服务中记录日志

public class MenuAppService : PDAppServiceBase,IMenuAppService
{public ILogger Logger { get; set; }public MenuAppService(){Logger = NullLogger.Instance;}public void Get(){Logger.Info("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");}
}

说明:Log4Net的abp官方说明https://aspnetboilerplate.com/Pages/Documents/Logging#config

这篇关于ABP框架—后台:日志log4net(9)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/508293

相关文章

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

SQL Server清除日志文件ERRORLOG和删除tempdb.mdf

《SQLServer清除日志文件ERRORLOG和删除tempdb.mdf》数据库再使用一段时间后,日志文件会增大,特别是在磁盘容量不足的情况下,更是需要缩减,以下为缩减方法:如果可以停止SQLSe... 目录缩减 ERRORLOG 文件(停止服务后)停止 SQL Server 服务:找到错误日志文件:删除

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization