ASP.NET MVC-简单例子-配置日志文件-log4net

环境:

win10,SQL Server 2008 R2


安装

使用NuGet

安装时发现报错并无法安装:

shell 复制代码
现有 packages.config 文件中检测到一个或多个未解析包依赖项约束。必须解析所有依赖项约束以添加或更新包。如果正在更新这些包,则可忽略此消息,如果没有更新这些包,错误可能阻止当前包操作: 'EntityFramework.zh-Hans 6.2.0 约束: EntityFramework (= 6.2.0)'
无法解析依赖项。"EntityFramework 6.4.4"与 'EntityFramework.zh-Hans 6.2.0 约束: EntityFramework (= 6.2.0)' 不兼容。

查询后得知:EntityFramework.zh-Hans 是 Entity Framework 的中文本地化包,用于将 Entity Framework 的个包通常用于将 Entity Framework 在用户界面中显示的文本本地化成中文。

考虑到我不需要这个功能,就直接卸载了这个包。报错解除,正常安装。

配置

  1. 打开项目根目录下的Web.config文件,在<configSections>下增加一条语句:
xml 复制代码
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

如果不加这句会报错:

shell 复制代码
配置错误	   无法读取配置节"log4net",因为它缺少节声明

然后在</configuration>前加入下面这段:

xml 复制代码
	<log4net>
		<appender name="FileAppender" type="log4net.Appender.FileAppender">
			<file value="logFile.log" />
			<appendToFile value="true" />
			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
			</layout>
		</appender>
		<root>
			<level value="DEBUG" />
			<appender-ref ref="FileAppender" />
		</root>
	</log4net>

就是放在这个位置:

  1. 打开Global.asax.cs文件,在函数Application_Start中增加一句:
csharp 复制代码
log4net.Config.XmlConfigurator.Configure();

使用

比如在HomeController里:

csharp 复制代码
public class HomeController : Controller
{
    // use log
    private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    
    public ActionResult Index()
    {
        log.Debug("Debug message");
        log.Info("Info message");
        log.Warn("Warn message");
        log.Error("Error message");
        log.Fatal("Fatal message");
        return View();
    }
    .....
}

此时项目根目录下产生文件logFile.log,内容为:

shell 复制代码
2024-06-28 16:58:27,429 [9] DEBUG WebApplication1.Controllers.HomeController [(null)] - Debug message
2024-06-28 16:58:27,452 [9] INFO  WebApplication1.Controllers.HomeController [(null)] - Info message
2024-06-28 16:58:27,452 [9] WARN  WebApplication1.Controllers.HomeController [(null)] - Warn message
2024-06-28 16:58:27,452 [9] ERROR WebApplication1.Controllers.HomeController [(null)] - Error message
2024-06-28 16:58:27,453 [9] FATAL WebApplication1.Controllers.HomeController [(null)] - Fatal message
相关推荐
qq_369224332 天前
Windows全系通用!ntdll.dll文件丢失、报错、闪退问题的完整排查与修复教程
windows·dll·dll修复·dll丢失·dll错误
阿米亚波2 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
caimouse2 天前
Reactos 第 10 章 网络操作 — 10.3.1 NIC驱动
网络·windows
初圣魔门首席弟子2 天前
Node.js 详细介绍(知识库版)
windows·qt·node.js·知识库
CHENG-JustDoIt2 天前
AI工具 | 爆火开源项目Odysseus AI 工作台:从项目介绍、部署情况及其使用等多方位分析指南(含详细步骤)
大数据·人工智能·windows·python·ai·开源·github
kingbal2 天前
Windows:flutter环境搭建
windows·flutter
未若君雅裁2 天前
Python 数据容器详解,list、tuple、str、set、dict 到底怎么选
windows·python·list
CodeKwang2 天前
Windows 环境 OCCT 8.0 编译构建及与 Qt6 项目集成
windows·qt·opencascade
我是伪码农2 天前
小兔鲜1-25
linux·服务器·windows
terry6002 天前
5G视频短信服务商选型全攻略:通道资源、架构能力与成本评估2026最新标准
大数据·人工智能·5g·json·asp.net·信息与通信·数据库架构