wpf Log4net的配置和使用
现在项目涉及的是cs客户端,在项目中使用log4net记录本地日志和异常信息,这里项目做完了,想着自己做一个demo,测试记录一下log4Net的配置使用。
第一步、新建一个wpf应用程序,项目右键 -----》点击NuGet程序包 -----》搜索lognet -------》点击安装

第二步:在app.config中添加节点 (当然,如果是Web项目就是 web.config)
配置文件代码如下:
<configuration>
<configSections>
<!--log4net配置-->
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<!--log4net配置-->
<log4net>
<!--定义输出到文件中-->
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<!--file可以指定具体的路径 D://logfile.txt。-->
<file value="D://logfile.txt"/>
<!--如果放在Debug下,当然名字你可以改 -->
<!--<file value="log//logfile.txt"/>-->
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<!--备份log文件的个数最多10个-->
<maxSizeRollBackups value="" />
<!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。-->
<maximumFileSize value="2MB" />
<datePattern value="yyyyMMdd-HH:mm:ss"/>
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<!--样例:-- ::, [] INFO Log4NetDemo.MainClass [(null)] - info-->
<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"/>
</layout>
</appender>
<!--定义日志的输出媒介-->
<root>
<!--指定将此级别及以上的log打印到log文件中-->
<level value="DEBUG"/>
<!--文件形式记录日志-->
<appender-ref ref="LogFileAppender"/>
</root>
</log4net>
</configuration>
把配置加到app.config中,如图所示

第三步:
在项目中找到Properties文件夹中找到AssemblyInfo.cs 在代码追后 添加 [assembly: log4net.Config.XmlConfigurator(Watch = true)]


第四步:添加操作log4net的后台代码
xaml文件创建按钮
<Button Name="logBtn" Click="LogBtn_Click" Content="创建日志" Width="" Height=""></Button>
xaml.cs 添加执行操作代码
private void LogBtn_Click(object sender, RoutedEventArgs e)
{
string strLog = String.Format("[Thread ID:{0}]{1}", AppDomain.GetCurrentThreadId(), "Log4net写入日志配置处理");
WriteLog(strLog);
} private void WriteLog(string exp = null, string loggerName = "InfoLogger")
{
//新建的一个静态类
LogObject.Log(loggerName).Info(exp);
LogObject.Log(loggerName).Error(exp);
}
public static class LogObject
{ public static ILog Log(string LoggerName)
{
//log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
return LogManager.GetLogger(LoggerName); } }
第五步:
找到文件路径D://logfile.txt 查看日志!


静态类中获取日志对象的另一种写法:这个是程序自动获取当前程序对象 (上面的我是通过WriteLog方法传入的)
ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
return log;
日志输出:

如果要在程序刚运行和退出的时候写入日志,在App.xaml.cs中加入:
public static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Log.Info("==Startup=====================>>>");
}
protected override void OnExit(ExitEventArgs e)
{
Log.Info("<<<========================End==");
base.OnExit(e);
}
先再运行编译后的exe文件

然后退出程序,看结果

我们可以看到程序在进入和退出的时候也写入了日志。
扩展的知识点:
日志记录器(Logger)的级别顺序:
分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级 从高到低分别是 ERROR、WARN、INFO、DEBUG。
通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别, 则应用程序中所有DEBUG级别的日志信息将不被打印出来。(比定义低的级别不会被打印出来)
优先级高的将被打印出来。项目上生产环境时候建议把debug的日志级别重新调为warn或者更高,避免产生大量日志。
wpf Log4net的配置和使用的更多相关文章
- LOG4NET日志配置及使用
Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ...
- log4net的配置与使用
log4net解决的问题是在.Net下提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括MS SQ ...
- 将Log4net的配置配置到的独立文件中
本文转载:http://blog.csdn.net/wanzhuan2010/article/details/7587780 另外一篇博客:http://grim1980.blog.sohu.com/ ...
- Log4Net 日志配置[附带源码]
前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录 ...
- Log4Net详细配置
关于Log4Net配置主要分几步 第一步:下载log4net.dll(log4net官网:http://logging.apache.org/log4net/download_log4net.cgi) ...
- 日志管理-将Log4net的配置配置到的独立文件中
转自:http://www.cnblogs.com/zfanlong1314/p/3662679.html使用log4net已经很久了.但从来没有详情了解log4的参数,及具体使用方法.看了周公的博客 ...
- Log4net快速配置使用指南。(快速搭建log4net日志平台手册)
每做一个新项目,都会用到log4net,但总是忘记如何快速配置.有时在网上搜半天也找不到好的模板,大都在介绍参数的使用,在此做下总结,争取下次用时仅10分钟就可搭建好log4net. 直接上介绍的步骤 ...
- C# log4net 的配置
项目的日志组件是必备可少的,任何项目中都需要.这样既方便前期的开发测试也方便项目后期的项目维护.C#项目的一个不错的日志组件是log4net,下面我就把桌面应用程序.控制台程序.网站中log4net的 ...
- log4net 日志配置及使用
一.log4net按照不同的[LEVEL]级别输出到不同文件 <log4net> <!--错误日志:::记录错误日志--> <!--按日期分割日志文件 一天一个--> ...
随机推荐
- Approximate Search
题目链接:Gym-101492H 动态规划,应该是比较基础的,可是自己就是不会QAQ.... /* 把使用机会当成“花费” */ # include <iostream> # includ ...
- 微信公众号_Deejo说_2019
说明: 1. 文中的内容均来自Deejo说微信公众号 2. 微信中搜索"Deejo说"公众号,可关注 麻麻英语 ——2019.09.10—— It’s my treat. 我来请客 ...
- centos7安装sql-server2017
1. 关闭selinux Vim /etc/selinux/conf 将selinux=enable 改成selinux=disabled 2. 清空/关闭iptables策略 Iptables ...
- TCP的连接如何知道对方已经异常断开
断电的话,对方不会发送任何数据包过来,包括RST.主机无法得知.如果是TCP已经连接,有个定时器,会发送空包,sequence number不变.如果一直收不到ack,会断定对方已经无法通信,而释放系 ...
- 微信小程序开发——修改小程序原生checkbox、radio默认样式
复选框: 闲话少说,这里直接介绍如何修改小程序提供的复选框的样式,如原生的是这样的: 需要的是这样的: 示例代码: /*复选框外框样式*/ checkbox .wx-checkbox-input { ...
- Android Studio打包没有Generate signed apk选项 解决方法
原文地址:https://www.jianshu.com/p/9e02e55f0ba8 1.点击build栏目-并没有Generate signed apk选项 2.点击file,选中如下图所示Syn ...
- 【Java】Spring之基于注释的容器配置(四)
注释是否比配置Spring的XML更好? 基于注释的配置的引入引发了这种方法是否比XML“更好”的问题.答案是每种方法都有其优点和缺点,通常,由开发人员决定哪种策略更适合他们.由于它们的定义方式,注释 ...
- 初识HDFS(10分钟了解HDFS、NameNode和DataNode)
概览 首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通 ...
- tomcat常见报错解决方法汇总
报错一:内存泄漏,字眼This is very likely to create a memory leak. 解决方法:修改tomcat内存. 在tomcat/bin目录下,修改catalina.s ...
- Java高级面试题整理(附答案)
这是我收集的10道高级Java面试问题列表.这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题.你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java ...
