log4Net(写入日志文件)
这里就简单介绍下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(写入日志文件)的更多相关文章
- 【.net 深呼吸】写入日志文件
记录日志,一方面可以把日志写入系统的日志存储中,可在“事件查看器”窗口中查看:如果不喜欢写到系统的日志文件中,也可以写到自己定义的文件中. 其实,日志文件就是文本文件,可能有朋友会想到用写入文本文件的 ...
- 使用log4net生成日志文件
(一)使用log4net生成日志文件 1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编 ...
- (一)使用log4net生成日志文件
1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编译后把log4net.dll引入项目. 2 ...
- weblogic开启http访问日志并实时写入日志文件
由于http访问会产生大量日志,耗去不少IO和CPU所以在生产一般是不启用的:但有时我们会想启用http访问日志,尤其是在系统上线调试的时候. weblogic的日志默认在domain_name/se ...
- ZH奶酪:PHP error_log()将错误信息写入日志文件
error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段. bool error_log ( string $message [, int $messag ...
- 使用log4net将日志文件输出为csv格式
我们在编写程序时,会在程序运行过程中记录一些日志.log4net作为一款经久耐用的日志组件,值得我们信赖.在中小型公司中,往往没有专业的日志服务器来处理应用程序产生的日志,而格式化不好的日志文件又为上 ...
- 利用log4net创建日志文件时过滤日志,这是坑还是?
前言 网上貌似没有太多关于log4net过滤日志的资料,在研究过程中发现一点小问题,这里做下记录,希望对后续有用到的童鞋起到一丢丢帮助作用. log4net日志过滤 由于是在.NET Core中使用, ...
- 解决log4net多进程日志文件被占用
<log4net debug="true"> <appender name="RollingLogFileAppender" type=&qu ...
- impdp报错: ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误
windows平台下,oracle 11.2.0.1在使用impdp向测试环境导入数据的时候,报出如下错误: 错误原因: 数据泵在写日志文件的时候,使用的是数据库字符集.如果客户端的环境变量NLS_L ...
随机推荐
- RTSP协议转换RTMP直播协议
RTSP协议转换RTMP直播协议 RTSP协议也是广泛使用的直播/点播流媒体协议,最近实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为 ...
- shell使用攻略
shell 是什么 ~ $ ls /bin/*sh /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh 是什么 kernel shell 命令 ...
- sql 笔记(mysql)
Windows 安装mysql(zip包) 1,zip包解压到要安装目录 2,配置环境变量,Path后加mysql路径\bin 3,修改配置文件,mysql目录下my-default.ini base ...
- Java 浅析三大特性之一多态
Java 浅析三大特性之一多态 之前我们的文章讲了Java的封装和继承,封装讲的时候,并没有体现出来封装的强大之处,反而还要慎用封装.因为这时的封装还没有和多态联系到一起,还无法看出向上转型的厉害之处 ...
- Android 透明度百分比对应的 十六进制
Android 透明度百分比对应的 十六进制 先把结果放在这里,方便大家查询,也方便自己,UI太喜欢用百分比表示了=.=! 透明度百分比对应的十六进制: (说明:百分比计算出来会有小数,按照常规的四舍 ...
- react native 入门实践
上周末开始接触react native,版本为0.37,边学边看写了个demo,语法使用es6/7和jsx.准备分享一下这个过程.之前没有native开发和react的使用经验,不对之处烦请指出.希望 ...
- 设置 iOS 应用的图标和名称
Xcode 8.1 设置 iOS 应用的图标和名称的方法: 设置应用图标: 1.在 Resources 中添加图片: 2.在 Icon file 的属性值填写图标文件的名称. 设置应用名: 1.修改 ...
- The replication agent has not logged a progress message in 10 minutes.
打开Replication Monitor,在Subscription Watch List Tab中,发现有大量的status= “Performance critical” 的黄色Warning, ...
- 数据结构与算法JavaScript (四) 串(BF)
串是由零个或多个字符组成的有限序列,又叫做字符串 串的逻辑结构和线性表很相似的,不同的是串针对是是字符集,所以在操作上与线性表还是有很大区别的.线性表更关注的是单个元素的操作CURD,串则是关注查找子 ...
- Hibernate的数据删除,更改
其他未给出代码,请参考上一篇.... 一.数据的删除 方法1.从“多”的一方进行数据的删除 books.hbm.xml文件不变: <many-to-one name="publishe ...