这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了。

   首先去log4net下载.

   然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4net/bin/net/4.5/release/log4net.dll

    接下来,我们在app.config配置如下。

  

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!--log4Net块配置-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>

<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
   <!--输出文件路径-->
<file value="D:\\test.txt"/>
<appendToFile value="true"/>
<!--最多10个日志备份文件-->
<maxSizeRollBackups value="10"/>
<!--每个文件最大1M-->
<maximumFileSize value="1024KB"/>
<!--回滚的格式按照大小-->
<rollingStyle value="Size"/>

<staticLogFileName value="true"/>

<layout type="log4net.Layout.PatternLayout">
      <!--输出内容 分别为:%date日期,%thread线程ID,(%-5level)等级,(%logger)初始配置时自定义的名字,%message消息,%newline换行-->
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>

<root>
    <!--输出等级限制-->
  <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->

  <!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录-->

<!--如果没有定义LEVEL的值,则缺省为DEBUG-->

<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>

</log4net>

<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

  

然后我们在Program.cs使用如下。

  

 //从配置文件读取log4net的配置,然后进行一个初始化工作。
log4net.Config.XmlConfigurator.Configure(); //创建一个实例,名字可随便取
ILog logWriete = log4net.LogManager.GetLogger("Demo2");
//这里输出的类型为error
logWriete.Error("哈哈");

  Console.WriteLine("成功!");
  Console.ReadKey();

接下效果如下:

  ---------------------------------------------------------------华丽分割线---------------------------------------------------------------------

  有些时候,我们要把为了区分配置,把log4Net的配置独立在一个文件里。

  在这里,我就在当前项目的根目录下,创建一个config或者是XML文件。

  这里我就创建一个名字为log4Net.xml文件。

  其次,我们右键=》属性,把《复制到输出目录》项改为始终赋值。

  并配置 logNet.xml内容如下。

  

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!--log4Net块配置-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections> <log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
   <!--输出文件路径-->
<file value="D:\\test.txt"/>
<appendToFile value="true"/>
<!--最多10个日志备份文件-->
<maxSizeRollBackups value=""/>
<!--每个文件最大1M-->
<maximumFileSize value="1024KB"/>
<!--回滚的格式按照大小-->
<rollingStyle value="Size"/> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout">
      <!--输出内容 分别为:%date日期,%thread线程ID,(%-5level)等级,(%logger)初始配置时自定义的名字,%message消息,%newline换行-->
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender> <root>
    <!--输出等级限制-->
  <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->   <!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root> </log4net> </configuration>

  然后,我们把app.config中的所有log4Net配置都去掉。

  

<?xml version="1.0" encoding="utf-8" ?>
<configuration> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup> </configuration>

  最后我们在Program.cs使用如下。

 //从配置文件读取log4net的配置,然后进行一个初始化工作。
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"log4Net.xml"));//这里指定路径 /*
有些人,是直接在调用类命名上面直接打上,[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4Net.xml", Watch = true)]这一句也是可以的。 其次,只要是ConfigureAndWatch上面这一句
在lognet.xml文件中的<<log4Net块配置>>是可以去掉的。
*/ //创建一个实例,名字可随便取
ILog logWriete = log4net.LogManager.GetLogger("Demo2");
//这里输出的类型为error
logWriete.Error("哈哈");
  Console.WriteLine("成功!");
  Console.ReadKey();

  注意事项。

    1:如果报错,请查看配置节点。

    2:如果没报错,而并没有输出文件,请查看调用的时候是否有初始化配置这一句代码。

本文结束。

      

     如果问题,欢迎讨论,咨询,建议,意见。

log4Net(写入日志文件)的更多相关文章

  1. 【.net 深呼吸】写入日志文件

    记录日志,一方面可以把日志写入系统的日志存储中,可在“事件查看器”窗口中查看:如果不喜欢写到系统的日志文件中,也可以写到自己定义的文件中. 其实,日志文件就是文本文件,可能有朋友会想到用写入文本文件的 ...

  2. 使用log4net生成日志文件

    (一)使用log4net生成日志文件   1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编 ...

  3. (一)使用log4net生成日志文件

    1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编译后把log4net.dll引入项目. 2 ...

  4. weblogic开启http访问日志并实时写入日志文件

    由于http访问会产生大量日志,耗去不少IO和CPU所以在生产一般是不启用的:但有时我们会想启用http访问日志,尤其是在系统上线调试的时候. weblogic的日志默认在domain_name/se ...

  5. ZH奶酪:PHP error_log()将错误信息写入日志文件

    error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段. bool error_log ( string $message [, int $messag ...

  6. 使用log4net将日志文件输出为csv格式

    我们在编写程序时,会在程序运行过程中记录一些日志.log4net作为一款经久耐用的日志组件,值得我们信赖.在中小型公司中,往往没有专业的日志服务器来处理应用程序产生的日志,而格式化不好的日志文件又为上 ...

  7. 利用log4net创建日志文件时过滤日志,这是坑还是?

    前言 网上貌似没有太多关于log4net过滤日志的资料,在研究过程中发现一点小问题,这里做下记录,希望对后续有用到的童鞋起到一丢丢帮助作用. log4net日志过滤 由于是在.NET Core中使用, ...

  8. 解决log4net多进程日志文件被占用

    <log4net debug="true"> <appender name="RollingLogFileAppender" type=&qu ...

  9. impdp报错: ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误

    windows平台下,oracle 11.2.0.1在使用impdp向测试环境导入数据的时候,报出如下错误: 错误原因: 数据泵在写日志文件的时候,使用的是数据库字符集.如果客户端的环境变量NLS_L ...

随机推荐

  1. 走向面试之数据库基础:三、SQL进阶之变量、事务、存储过程与触发器

    一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 ) DECLARE @id int (2)为变量赋值 SET @变量名 =值 --set用于普通的赋值 SE ...

  2. 使用border做三角形

    网站上经常会使用一些三角形,除了图片的方式,实际上利用border我们可以做出纯CSS的三角形.我们知道border是个边抖可以单独设置,当四个边相交的时候他们是什么时候改变的? .t0{ margi ...

  3. WCF 的 Service Instance模式和并发处理

    WCF 的 Service Instance(实例)有三种模式 PerCall:每一次调用都创建一个实例,每一次调用结束后回收实例.此模式完全无状态. PerSession:调用者打开Channel时 ...

  4. LInux 查看环境变量

    1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量hello $ export HELLO="Hello!" $ ech ...

  5. fir.im Weekly - 除了新 MacBook Pro,近期值得关注的移动开发好资源

    最近,最引人瞩目的莫过于 Apple 产品发布会,MacBook Pro 的更新可能是四年来变化最大的一版.除了更轻.更薄.性能更好.电力更足之外,最大的变化是加入了Touch Bar,被定义为 Ma ...

  6. LINQ系列:Linq to Object限制操作符

    1. Where 限制操作符Where用于过滤序列,按照提供的逻辑对序列中的数据进行过滤.Where可以出现多次. 1.1 原型定义 public static IEnumerable<TSou ...

  7. jQuery2.0.3源码分析系列之(29) 窗口尺寸

    .height() .innerHeight() .innerWidth() .outerHeight() .outerWidth() .width() 基础回顾 一般的,在获取浏览器窗口的大小和位置 ...

  8. 深入学习jQuery自定义动画

    × 目录 [1]属性对象 [2]可选参数 [3]选项参数 前面的话 很多情况下,前面介绍的jQuery动画的简单效果无法满足用户的各种需求,那么就需要对动画有更多的限制,需要采取一些高级的自定义动画来 ...

  9. TSQL语句练习题

    1. 查询Student表中的所有记录的Sname.Ssex和Class列. select Sname,Ssex,Class from Student 2. 查询教师所有的单位即不重复的Depart列 ...

  10. Git 冲突合并

    在多人协作开发,经常遇到Git冲突,每次都不大记住命令.所以自己备注一下! git pull 之后有冲突: $ git pullremote: Counting objects: 5, done.re ...