Asp.Net 使用Log4Net (基础版)
Asp.Net 使用Log4Net (基础版)
1. 创建项目
创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为"Log4NetDemo"。
2.安装Log4Net包
打开NuGet包管理器控制台,并运行以下命令来安装Log4Net:
mathematicaCopy code
Install-Package log4net
3. 添加Log4Net配置
在Web.config文件中添加Log4Net的配置。将以下内容粘贴到Web.config文件中。
<?xml version="1.0" encoding="utf-8" ?>
<configuration><!-- 配置节,用于Log4Net的配置 --><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /></configSections><!-- Log4Net配置 --><log4net debug="false"><!-- 日志附加器:将日志记录到文件中 --><appender name="LogFileAppender" type="log4net.Appender.FileAppender"><!-- 文件路径及名称 --><param name="File" value="Log/AT.log"/><!-- 日志文件的日期格式 --><param name="datePattern" value="YY-MM-dd HH:mm"/><!-- 是否追加到文件尾部 --><param name="AppendToFile" value="true"/><!-- 日志记录格式 --><layout type="log4net.Layout.PatternLayout"><!-- 日志记录的具体格式 --><param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/></layout></appender><!-- 另一个日志附加器:将日志记录到ASP.NET Trace中 --><appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender"><!-- 日志记录格式 --><layout type="log4net.Layout.PatternLayout"><!-- 日志记录的具体格式 --><param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/></layout></appender><!-- 另一个日志附加器:将日志记录到Windows事件日志中 --><appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"><!-- 日志记录格式 --><layout type="log4net.Layout.PatternLayout"><!-- 日志记录的具体格式 --><param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/></layout></appender><!-- 另一个日志附加器:将日志记录到滚动文件中,按日期分割 --><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"><!-- 文件路径及名称 --><file value="log\AT"/><!-- 是否追加到文件尾部 --><appendToFile value="true"/><!-- 文件滚动的方式,按日期滚动 --><rollingStyle value="Date"/><!-- 滚动的日期格式 --><datePattern value="_yyyyMMdd'.log'"/><!-- 文件名中是否包含静态部分 --><staticLogFileName value="false"/><!-- 日志记录格式 --><layout type="log4net.Layout.PatternLayout"><!-- 日志记录的具体格式 --><conversionPattern value="%d [%t] %-5p %c - %m%n"/></layout></appender><!-- 根日志记录器的配置 --><root><!-- 日志级别为INFO,记录INFO级别及以上的日志 --><level value="INFO"/><!-- 将日志附加到名为RollingLogFileAppender的附加器上 --><appender-ref ref="RollingLogFileAppender"/></root></log4net><!-- 其他ASP.NET应用程序配置 --><system.web><!-- 可在此处添加其他Web相关的配置 --></system.web>
</configuration>
4. 初始化Log4Net
在Global.asax文件中,我们需要初始化Log4Net。在Application_Start事件中添加以下代码:
using log4net;public class Global : System.Web.HttpApplication
{protected void Application_Start(object sender, EventArgs e){log4net.Config.XmlConfigurator.Configure(); // Initialize Log4Net// Other application startup code}
}
5. 修改web.config 文件
?xml version="1.0" encoding="utf-8"?><!--有关如何配置 ASP.NET 应用程序的详细信息,请访问http://go.microsoft.com/fwlink/?LinkId=169433--><configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/></configSections><log4net configSource="log4net.config"/><system.web><httpModules><!--重写IHttpModule类,需要配置的信息--><!--<add name="FilterModule" type="APESM_GGJ.FilterModule,APESM_GGJ" />--></httpModules><compilation debug="true" targetFramework="4.0" /></system.web>
</configuration>
7. 使用Log4Net记录日志
现在,我们可以在ASP.NET应用程序的任何位置使用Log4Net来记录日志。创建一个简单的Web Form页面Default.aspx,并在Page_Load事件中添加以下代码:
using log4net;public partial class _Default : System.Web.UI.Page
{private static readonly ILog log = LogManager.GetLogger(typeof(_Default));protected void Page_Load(object sender, EventArgs e){log.Info("This is an information message.");log.Warn("This is a warning message.");log.Error("This is an error message.");log.Fatal("This is a fatal error message.");}
}
8. 查看日志
当你访问Default.aspx页面时,Log4Net将记录日志信息到指定的文件中。在这里,日志将被记录到"Log/AT.log"文件中。
请确保在Web应用程序的根目录下创建一个名为"Log"的文件夹,用于存储日志文件。你还可以根据需要进行其他配置更改,如日志级别或日志附加器等。
请注意,为了演示方便,我们只在Default.aspx页面的Page_Load事件中记录了日志,实际上,你可以在应用程序的其他地方记录日志,以便在必要时捕获并诊断问题。
相关文章:
Asp.Net 使用Log4Net (基础版)
Asp.Net 使用Log4Net (基础版) 1. 创建项目 创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为"Log4NetDemo"。 2.安装Log4Net包 打开NuGet包管理器控制台,并运行以下命令来安装Log4Net: mathemati…...
STM32 互补PWM 带死区 HAL
1、设置PWM波频率100KHz,占空比50%,死区时间1us 2、 while 循环之前启动PWM HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); //启动TIM1_CH1 PWM输出 HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);//启动TIM1_CH1N PWM输出 3、死区计算 DT_time…...
20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片
20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片 2023/7/21 22:58 1、前言: AES-128加密的ts视频切片【第一个】,打开有时间限制的! https://app1ce7glfm1187.h5.xiaoeknow.com/v2/course/alive/l_64af6130e4b03e4b54da1681?typ…...
使用Python实现产品图片自动化处理
大家好,在当今的数字化时代,产品图片在电子商务和市场营销中发挥着至关重要的作用。然而,为在线平台准备产品图片可能是一项耗时的任务,本文将分享一个Python脚本,用于自动化产品图片的图像处理工作流程。通过使用Pyth…...
在CSDN学Golang云原生(git)
一,git的工作流程 Golang的Git工作流程与其他语言的Git工作流程类似,通常包括以下步骤: 创建分支:在本地代码库中创建一个新的分支,该分支用于开发新功能或修复错误。编写代码:在创建的分支上进行编码&am…...
QT多线程编程基础
文章目录 前言一、线程,进程 介绍二、创建线程三、终止线程总结 前言 一、线程,进程 介绍 线程: 是操作系统中独立运行的最小单位。每个线程都有自己的执行路径、程序计数器、堆栈和一组寄存器。线程共享进程的资源,如内存和文件…...
TRT4-trt-integrate - 3 使用onnxruntime进行onnx的模型推理过程
前言: onnx是microsoft开发的一个中间格式,而onnxruntime简称ort是microsoft为onnx开发的推理引擎。允许使用onnx作为输入进行直接推理得到结果。 py接口的推理过程: main函数: if __name__ "__main__":session onn…...
layui+drogon完成文件上传(简例)
layui界面加入按钮、文本框、进度条: <div class"layui-row"><button type"button" class"layui-btn" id"file_upload_control">文件上传</button><input type"file" id"files_input…...
高精度地图服务引擎项目
技术栈:使用vue3TypeScriptElement PlusPiniaaxios 项目描述:高精度地图服务引擎项目,提供轻量化处理3D瓦片切片分布式处理分发服务的一站式解决方案 工作内容:1、项目60%已上的页面开发 2、部分模块的功能实现, 3、封…...
PyTorch使用Transformer进行机器翻译
文章目录 简介数据集环境要求实验代码实验结果参考来源 简介 本文使用PyTorch自带的transformer层进行机器翻译:从德语翻译为英语。从零开始实现Transformer请参阅PyTorch从零开始实现Transformer,以便于获得对Transfomer更深的理解。 数据集 Multi30…...
LoadRunner使用教程
1. LoadRunner简介 LoadRunner是一款广泛使用的性能测试工具 可以对各种应用程序进行性能测试,包括Web应用程序、移动应用程序、企业级应用程序等。它提供了一个综合的性能测试解决方案,包括测试计划设计、脚本录制、测试执行、结果分析和报告生成等功…...
Zia和ChatGPT如何协同工作?
有没有集成ChatGPT的CRM系统推荐?Zoho CRM已经正式与ChatGPT集成。下面我们将从使用场景、使用价值和使用范围等方面切入讲述CRMAI的应用和作用。 Zia和ChatGPT如何协同工作? Zia和ChatGPT是不同的人工智能模型,在CRM中呈现出共生的关系。 …...
【位操作】——获取整数变量最低位为 1 的位置
获取整数变量最低位为 1 的位置 #define BIT_LOW_BIT(y) (((y)&BIT(0)) ? 0 : (((y)&BIT(1)) ? 1 : (((y)&BIT(2)) ? 2 : (((y)&BIT(3)) ? 3 : \(((y)&BIT(4)) ? 4 : (((y)&BIT(5)) ? 5 : (((y)&BIT(6)) ? 6 : (((y)&…...
gtest测试用例注册及自动化调度机制源代码流程分析
gtest的入门参见: 玩转Google开源C单元测试框架Google Test系列(gtest) gtest源码分析流程参见: gtest流程解析 测试用例注册流程分析要点:TEST_F宏替换、C静态成员的动态初始化。 自动化调度流程分析要点:UnitTest、UnitTestIm…...
IOS自动化测试环境搭建教程
目录 一、前言 二、环境依赖 1、环境依赖项 2、环境需求与支持 三、环境配置 1、xcode安装 2、Git安装 3、Homebrew安装(用brew来安装依赖) 4、npm和nodejs安装 5、libimobiledevice安装 6、idevicesinstaller安装 7、ios-deploy安装 8、Ca…...
常用API学习08(Java)
格式化 格式化指的是将数据按照指定的规则转化为指定的形式 。 那么为什么需要格式化?格式化有什么用? 以数字类为例,假设有一个比分牌,在无人得分的时候我们希望以:“00:00”的形式存在,那么…...
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们? 在TypeScript中,装饰器(Decorators)是一种用于增强代码功能的特殊类型声明。装饰器提供了一种在类、方法、…...
Jenkins 还可以支持钉钉消息通知?一个插件带你搞定!
Jenkins 作为最流行的开源持续集成平台,其强大的拓展功能一直备受测试人员及开发人员的青睐。大家都知道我们可以在 Jenkins 中安装 Email 插件支持构建之后通过邮件将结果及时通知到相关人员。 但其实 Jenkins 还可以支持钉钉消息通知,其主要通过 Ding…...
7.ES使用
ES多条件查询 and , or这种的 ES模糊查询 like这种的 {"wildcard": {"title.keyword": {"value": "*宣讲*"}}}说明: title是要匹配的关键字段名称keyword是属性,表示匹配的是关键字信息,如果不用.ke…...
Web安全基础
1、HTML基础 什么是 HTML HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (Markup language) 标记语言是一套标记标签 (Markup tag) HTML 使用标记标签来描述网页 总的来说&…...
如何永久保存微信聊天记忆:WeChatMsg本地数据管理终极指南
如何永久保存微信聊天记忆:WeChatMsg本地数据管理终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...
WeChatMsg终极指南:如何永久保存你的微信聊天记忆
WeChatMsg终极指南:如何永久保存你的微信聊天记忆 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg…...
Citra模拟器全方位指南:从安装到优化的3DS游戏体验提升方案
Citra模拟器全方位指南:从安装到优化的3DS游戏体验提升方案 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra Citra作为一款开源高性能的Nintendo 3DS模拟器,为Windows、Linux和macOS用户提供…...
Qwen2.5-VL-7B-InstructGPU优化指南:视觉特征缓存机制与响应速度实测对比
Qwen2.5-VL-7B-Instruct GPU优化指南:视觉特征缓存机制与响应速度实测对比 1. 项目概述与优化背景 Qwen2.5-VL-7B-Instruct作为一款先进的多模态视觉-语言模型,在处理图像和文本交互任务时展现出强大能力。但在实际部署中,我们发现其GPU资源…...
如何快速掌握时空聚类:面向数据分析师的ST-DBSCAN终极指南
如何快速掌握时空聚类:面向数据分析师的ST-DBSCAN终极指南 【免费下载链接】st_dbscan ST-DBSCAN: Simple and effective tool for spatial-temporal clustering 项目地址: https://gitcode.com/gh_mirrors/st/st_dbscan 时空数据分析正成为现代数据科学的重…...
低功耗psram在嵌入式存储领域的作用
在嵌入式存储领域,低功耗PSRAM(伪静态随机存取存储器)正逐渐成为智能穿戴、物联网设备等对功耗和体积敏感应用的理想选择。那么,PSRAM究竟有什么作用?为什么它能在低功耗场景中脱颖而出? 1.psram是什么 PS…...
基于深度学习的多种类动物识别(YOLOv12/v11/v8/v5模型+数据集)(源码+lw+部署文档+讲解等)
摘要随着人工智能和深度学习技术的发展,基于图像的动物识别系统在生态监测、物种保护和生物多样性研究等领域获得了广泛应用。本文提出了一种基于YOLO(You Only Look Once)系列模型(包括YOLOv5、YOLOv8、YOLOv11和YOLOv12…...
HoYo-Glyphs:11款米哈游游戏文字字体,轻松打造你的专属游戏世界
HoYo-Glyphs:11款米哈游游戏文字字体,轻松打造你的专属游戏世界 【免费下载链接】HoYo-Glyphs Constructed scripts by HoYoverse 米哈游的架空文字 项目地址: https://gitcode.com/gh_mirrors/ho/HoYo-Glyphs 你是否曾被《原神》中蒙德教堂的哥特…...
Blender 3MF插件:重塑3D打印数据流转的技术突破
Blender 3MF插件:重塑3D打印数据流转的技术突破 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 一、问题导入:3D打印数据传递的行业痛点与解决方案…...
深圳SEO公司为什么要定期优化网站
深圳SEO公司为什么要定期优化网站 在当今数字化时代,拥有一个优秀的网站已经不再足以满足企业的需求。随着互联网市场的竞争日益激烈,深圳SEO公司认识到定期优化网站的重要性,并将其作为持续提升网站流量和业务发展的核心策略之一。为什么深…...
