和之前的ASP.NET MVC中的使用LOG4NET的方法有些不同,这里先记录一下,使用步骤如下 :
1. 建立 ASP.NET CORE项目中,NUGET中搜索log4net后下载安装
2. 根目录建立 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="FileAppender" type="log4net.Appender.FileAppender">
<file value="log-file.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logfile/" />
<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 %logger [%property{NDC}] - %message%newline" />
</layout>
</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" />
</root>
</log4net>
</configuration>
3. Startup.cs文件中的Startup方法和ConfigureServices方法里的AddMvc代码改下,核心代码如下,记得引用相应的命名空间:
//log4net日志
public static ILoggerRepository repository { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
//加载log4net日志配置文件
repository = LogManager.CreateRepository("NETCoreRepository");
XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options.Filters.Add<Models.HttpGlobalExceptionFilter>(); //加入全局异常类
});
}
4. Models文件夹中建立 HttpGlobalExceptionFilter.cs 类,用于全局异常后记录到日志中,内容代码如下 :
using log4net;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace WebApplication1.Models
{
/// <summary>
/// 全局异常类
/// </summary>
public class HttpGlobalExceptionFilter : IExceptionFilter
{
private ILog log = LogManager.GetLogger(Startup.repository.Name, typeof(HttpGlobalExceptionFilter));
public void OnException(ExceptionContext context)
{
log.Error(context.Exception);
}
}
}
5. 下面是控制器的代码,有异常会自动记录下来,用那个log也能手工记录日志信息
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using log4net;
using Microsoft.AspNetCore.Mvc;
using WebApplication1.Models;
namespace WebApplication1.Controllers
{
public class HomeController : Controller
{
private ILog log = LogManager.GetLogger(Startup.repository.Name, typeof(HttpGlobalExceptionFilter));
public IActionResult Index()
{
throw new Exception("牛腩自定义异常!!!"); //有异常则会记录到logfile文件夹中
return View();
}
public IActionResult About()
{
ViewData["Message"] = "Your application description page.";
log.Info("打开about页面了!!!"); //普通的记录日志
return View();
}
}
}
相关推荐
在ASP.NET Core 2.0应用中,由于默认的日志提供者可能不足以满足复杂的需求,我们通常会引入log4net。首先,需要在项目中引用`log4net`库,然后在`appsettings.json`中配置日志输出目的地,如控制台、文件或数据库。...
本篇文章将详细探讨如何在ASP.NET Core中使用NLog来将日志输出到TXT文件,并实现文件大小限制及位置信息的显示。 首先,让我们了解NLog的基本概念。NLog提供了灵活的日志配置,允许开发者定义多个目标(如控制台、...
首先,在 ASP.NET Core 中,Request.Body 是一个 Stream 对象,它不能被直接读取。我们需要使用 StreamReader 对象来读取 Request.Body。下面是一个简单的示例代码: ```csharp public override void ...
从log4net的基本介绍、兼容性问题处理、配置文件使用、中间件注册到日志的记录和输出,一步步引导读者了解如何在.net core项目中使用log4net进行日志记录。同时,这篇文章也传达了在开发中遇到问题时,如何利用社区...
这个DLL文件使得开发者能够在ASP.NET CORE项目中直接引用和使用`log4net`的功能,无需安装额外的包或依赖。 **2. 配置Log4net** 在`Log4net.config`文件中,我们可以配置`log4net`的行为,包括定义日志输出级别...
包,这样可以在 ASP.NET Core 中使用 log4net。 2. **创建环境特定的配置文件**:就像 ASP.NET Core 的 `appsettings.json` 文件一样,我们可以为每个环境创建单独的 log4net 配置文件。例如,我们可以创建 `log4...
.NET Core 实现分表分库、读写分离的通用 Repository 功能是指使用 FreeSql.Repository 库来实现通用的仓储层功能,实现了基础的仓储层(CURD),并且支持分表分库、读写分离等功能。 FreeSql.Repository 库是基于 ...
Log4Net在ASP.NET Core 5.0下的配置,让日志写入进数据库和本地文件
以上就是关于“asp.net控制键盘keycode事件”的详细解释,希望能帮助你理解和掌握如何在ASP.NET环境中使用键盘事件和`keycode`。在实际开发中,可以根据需求灵活运用这些技术,创建更加智能化和响应式的Web应用。
- ASP.NET Core 支持多种日志提供程序,包括 Console、EventLog 和 Serilog。 - **错误处理**: - 通过使用全局异常处理程序可以统一处理应用中的异常。 - 可以通过 `try-catch` 语句捕获异常,并使用中间件来...
9. **调试与日志记录**: 在项目中,开发者可能会使用Visual Studio的调试工具,或者集成如Log4Net、NLog等日志记录库,以便在问题排查时收集信息。 10. **前端技术**: ASP.NET项目往往结合HTML、CSS和JavaScript,...
在"Log4Net源码"部分,我们可以学习到如何在ASP.NET项目中集成Log4Net进行日志记录。开发者通常会通过添加引用、配置XML配置文件以及在代码中调用Log4NetAPI来实现对应用程序运行时的详细跟踪,这对于问题排查和性能...
12. **错误处理与日志记录**:学习如何优雅地处理异常,以及使用NLog、Log4Net等工具进行日志记录,便于问题排查。 通过"ASP.NET项目实战"的学习,你将具备设计和实施复杂Web应用的能力,理解Web开发的最佳实践,并...
关于ASP.NET Core 2.0的一本小书。 The Little ASP.NET Core Book is structured as a tutorial. You'll build a to-do app from start to finish and learn: The basics of the MVC (Model-View-Controller) ...
- **Persistent Connections**:SignalR提供了一种更底层的方式来处理实时通信,适合简单的推送场景,但在ASP.NET Core中,通常更推荐使用Hub。 3. **WebSocket支持** ASP.NET Core 3.1和SignalR结合,充分利用...
ASP.NET提供了一些内置的异常处理机制,同时可以通过第三方库如log4net进行日志记录。 10. **单元测试与持续集成**:对于大型项目,单元测试和持续集成是保证代码质量的重要手段。开发者可以利用NUnit、xUnit等工具...
ASP.NET提供了异常处理机制,同时可以集成日志记录库,如Log4Net,以便跟踪和分析错误。 综上所述,这个ASP.NET版通讯录项目涵盖了Web开发的核心技术,包括Web Forms编程、C#语法、数据库操作、用户界面设计、数据...
实现log4net的自定义字段扩展 Log4Net中添加自定义日志信息。我们在写日志的时候并不是只写消息(Message),有些情况需要记录自定义的日志信息等。在Log4Net中增加自定义字段UserName(用户名),Category(类别)这两...
例如,我们可以使用log4net或NLog这样的日志库,方便地配置和管理日志输出。 调试ASP.NET Web API或ASP.NET Core应用程序时,还可以利用HTTP客户端工具,如Postman或Fiddler,模拟不同的HTTP请求并观察响应,以检测...