Log4Net使用实例(VS2008 App)

2023-11-17

准备工作:

首先要去http://logging.apache.org/log4net/下载log4net的源代码,将log4net.sln载入Visual Studio .NET,编译后可以得到log4net.dll,也可以直接在网上搜索下载别人生成好的“log4net.dll”;本文提供的附件中已经包含此库。

第一步: 新建一个C# Form项目,名字为Log,并引用log4net.dll。

第二步:准备配置文件。配置文件可以写在任何你想写的xml格式的文件里,比如程序的配置文件App.config或者自定义的文件XXX.XML,本例中使用的是log4net.xml。内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

 
<configSections>
   
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.2" />
 
</configSections>

 
<log4net>
   
<logger name="MyLog">
     
<level value="ALL" />
     
<appender-ref ref="ConsoleAppender" />
     
<appender-ref ref="LogFileAppender" />
   
</logger>

   
<appender name="ConsoleAppender"  type="log4net.Appender.ConsoleAppender" >
     
<layout type="log4net.Layout.PatternLayout">
       
<param name="ConversionPattern"  value="%d [%t] %-5p %c [%x] - %m%n"/>
     
</layout>
   
</appender>

   
<appender name="LogFileAppender"  type="log4net.Appender.FileAppender" >
     
<param name="File" value="MyLog.Log" />
     
<param name="AppendToFile" value="true" />
     
<layout type="log4net.Layout.PatternLayout">
       
<param name="ConversionPattern"  value="%d [%t] %-5p %c [%x]  - %m%n"  />
     
</layout>
   
</appender>

 
</log4net>
</configuration>

第三步:AssemblyInfo.cs 里加入一行代码,指定log4net要使用的配置文件

  
  
[assembly: log4net.Config.XmlConfigurator(ConfigFile = @" log4net.xml " , Watch = false )]

第四步:在程序中添加代码,如下,运行程序,点击按钮,就可以看到本目录下生成一个文件:MyLog.Log。

  
  
private void button1_Click( object sender, EventArgs e) { log4net.ILog logger = log4net.LogManager.GetLogger( " MyLog " ); logger.Debug( " Hello, Log4Net... " );

其中某一行的日志内容如下:

2010-04-14 10:47:45,156 [3108] DEBUG MyLog [(null)]  - Hello, Log4Net...

实例工程下载:http://files.cnblogs.com/wengd/Log.rar

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Log4Net使用实例(VS2008 App) 的相关文章

  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • 使用post方法将多个参数发送到asp.net core 3 mvc操作

    使用 http post 方法向 asp net mvc core 3 操作发送具有多个参数的 ajax 请求时存在问题 参数不绑定 在 dot net 框架 asp net web api 中存在类似的限制 但在 asp net mvc
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • Intel:序列化指令和分支预测

    英特尔架构开发人员手册 http www intel com content www us en architecture and technology 64 ia 32 architectures software developer v
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 使用 Gas 生成与位置无关的代码 (-fPIC)

    我尝试在 x86 64 上创建共享库但失败 问题归结为以下代码 请不要介意 它没有多大意义 section data newline ascii n section text globl write newline type write n
  • Azure 事件中心 - 按顺序接收事件

    我使用下面的代码从 Azure Event Hub 接收事件 https learn microsoft com en us azure event hubs event hubs dotnet framework getstarted s
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • C# 中条件编译符号的编译时检查(参见示例)?

    在 C C 中你可以这样做 define IN USE 1 define NOT IN USE 1 define USING system 1 system 1 IN USE 进而 define MY SYSTEM IN USE if US
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 当“int”处于最大值并使用 postfix ++ 进行测试时,代码定义良好吗?

    示例 未定义行为的一个示例是整数溢出的行为 C11dr 3 4 3 3 int溢出是未定义的行为 但这是否适用于存在循环的以下内容 并且不使用现在超出范围的副作用i 特别是 这是否后缀增量规格帮助 结果的值计算在副作用之前排序 更新操作数的
  • 在 C 中使用 GNU automake 中的解析器

    我是 GNU autotools 的新手 在我的项目中使用了 lex 和 yacc 解析器 将它们作为 makefile am 中的源代码会产生以下错误 配置 in AC CHECK PROGS YACC bison yacc none i
  • 如何挤出平面 2D 网格并赋予其深度

    我有一组共面 连接的三角形 即二维网格 现在我需要将其在 z 轴上挤出几个单位 网格由一组顶点定义 渲染器通过与三角形数组匹配来理解这些顶点 网格示例 顶点 0 0 0 10 0 0 10 10 0 0 10 0 所以这里我们有一个二维正方
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • strcmp 给出分段错误[重复]

    这个问题在这里已经有答案了 这是我的代码给出分段错误 include
  • 转到定义:“无法导航到插入符号下的符号。”

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我今天突然开始在我的项目中遇到一个问题 单击 转到定义 会出现一个奇怪的错误 无法导航到

随机推荐

  • 【plotly】用绘图函数,定位坐标相关的问题

    公司的业务场景有涉及到快递配送的场景 某次有运营同学反馈某个订单划分异常 没有划分给距离最近的快递员 让调查这个问题 因为存在数据库中的数据不直观 就想到用绘图工具 把订单的配送位置和快递员当时的定位位置绘制出来 方便调查问题 要求就是能绘
  • 1746. 经过一次操作后的最大子数组和

    1746 经过一次操作后的最大子数组和 你有一个整数数组 nums 你只能将一个元素 nums i 替换为 nums i nums i 返回替换后的最大子数组和 示例 1 输入 nums 2 1 4 3 输出 17 解释 你可以把 4替换为
  • 解决Windows缺少找不到msvcp140.dll文件

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个msvcp140 dll文件进行安装 前提是找到
  • Leaflet-学习

    一 官网 英文官网 Leaflet 中文官网 Leaflet 二 介绍 Leaflet 是一个开源并且对移动端友好的交互式地图 JavaScript 库 它大小仅仅只有39 KB 并且拥有绝大部分开发者所需要的所有地图特性 Leaflet
  • 金融分析与风险管理——投资组合的绩效评估

    金融分析与风险管理 投资组合的绩效评估 1 夏普比率 2 索提诺比率 3 特雷诺比率 4 信息比率 1 夏普比率 夏普比率是指在某一时间段内 投资组合每承担一单位风险所带来的的超额收益 值越大表示收益越好 其表达式如下 S R E
  • CodeGeex AI代码提示插件使用

    这里写自定义目录标题 下载插件 Jetbrains IDEA安装示例 下载插件 可在官网按照指引安装不同编译器的插件 目前支持VS Code 和Jetbrains全家桶 官网地址 https codegeex cn zh CN Jetbra
  • Gartner发布5G网络基础设施魔力象限报告

    昨天 国际权威分析机构Gartner发布了首份 通信运营商5G网络基础设施魔力象限 报告 Gartner通信运营商5G网络基础设施魔力象限 该魔力象限帮助通信服务提供商识别和评估其5G网络基础设施的网络设备提供商 这种端到端5G网络基础设施
  • 为什么样本方差里面要除以(n-1)而不是n?

    前段日子重新整理了一下这个问题的解答 跟大家分享一下 如果有什么错误的话希望大家能够提出来 我会及时改正的 话不多说进入正题 首先 我们来看一下样本方差的计算公式 刚开始接触这个公式的话可能会有一个疑问就是 为什么样本方差要除以 n 1 而
  • LIME(可解释性分析方法)

    目录 1 什么是LIME 2 思路 3 LIME在不同任务中的范式 待补充 1 什么是LIME 简单理解 对于分类任务 如下图所示 LIME可以列出分类结果 所依据特征对应给比重 对于图像分类任务 如下图所示 可以标记出 分类结果对应的特征
  • 西门子S7-200PLC基本入门编程

    1 PLC控制电动机的启保停电路 实验要求 按下启动开关时 电动机正常启动并且保持正常持续工作 按下停止按钮时电动机立刻停止工作 PLCI O分配表 输入量 输出量 I0 0 电动机启动按钮 Q0 0 电动机运行 I0 1 电动机停止按钮
  • Tomcat配置内存和远程debug端口

    配置内存 需要在catalina bat中添加JAVA OPTS参数 如下内容 SET JAVA OPTS Xms256m Xmx1024m XX MaxNewSize 256m XX MaxPermSize 428m Duser time
  • 【Matlab】常用函数汇总(二)

    Matlab 是矩阵实验室 Matrix Laboratory 的英文缩写 是用于科学与工程计算的工具 Matlab 提供了许多常用的数学函数 本文主要介绍 Matlab 与统计 排序 求和与乘积 以及随机数相关的函数 目录 1 统计函数
  • Python支持向量回归SVR拟合、预测回归数据和可视化准确性检查实例

    最近我们被客户要求撰写关于支持向量回归的研究报告 包括一些图形和统计输出 支持向量回归 SVR 是一种回归算法 它应用支持向量机 SVM 的类似技术进行回归分析 正如我们所知 回归数据包含连续的实数 为了拟合这种类型的数据 SVR模型在考虑
  • 软件工程学习日记(4)----面向数据流的设计方法

    用面向数据流的方法设计下列系统的软件结构 问题回顾 为方便储户 某银行拟开发计算机储蓄系统 储户填写的存款单或取款单由业务员输入系统 如果是存款 系统记录存款人姓名 住址 存款类型 存款日期 利率等信息 并印出存款单给储户 如果是取款 系统
  • 四元组与旋转矩阵

    转自 https blog csdn net linuxheik article details 49129927 引用 四元组与旋转矩阵 2011 09 22 17 13 39 分类 DirectX资料 举报 字号 订阅 下载LOFTER
  • halcon起步

    halcon起步 安装 软件介绍 安装 下载地址 管理员方式运行 选择安装 否 复制dll文件 D Program Files MVTec HALCON 12 0 bin x64 win64 重启计算机 软件介绍 打开药品识别例程 导出为c
  • vue3报错:‘xxxx‘is declared but its value is never read.Vetur(6133)

    原因 因为vue3不支持vetur了 解决办法 1 禁用或者删除vscode中的vetur扩展 2 下载Vue Language Features 3 重新打开项目 完美解决
  • 医学图像相关的数据集

    医学图像相关的数据集 1 Camelyon 乳腺病理 数据集获取 参考 博文地址 相关文章推荐 预处理
  • Qt QString字符串分割、截取的3种方法

    Qt QString字符串分割 截取 在做项目中不可避免的会使用到一串字符串中的一段字符 因此常常需要截取字符串 有两种方式可以解决这个问题 方法一 QString分割字符串 QString date dateEdit toString y
  • Log4Net使用实例(VS2008 App)

    准备工作 首先要去http logging apache org log4net 下载log4net的源代码 将log4net sln载入Visual Studio NET 编译后可以得到log4net dll 也可以直接在网上搜索下载别人