Log4net用法
日记是我们在程序中经常用到的,故记于此
首先要下载Log4net.dll
官方网站:http://logging.apache.org/log4net/
vs里创建一个c#控制台程序,在App.config里设置
这里设置的目的,有两个,一为了得到log4net.config的文件,另一个就是日记的开关,日记是否开启
现在看主函数里怎么用
using log4net.Config;
using log4net; namespace Test {
class Program { static void Main(string[] args) { //初始化日志文件
string state = ConfigurationManager.AppSettings["IsWriteLog"];
//判断是否开启日志记录
if (state == "") {
var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase +
ConfigurationManager.AppSettings["log4net"];
var fi = new System.IO.FileInfo(path);
log4net.Config.XmlConfigurator.Configure(fi);
} LogHelper.WriteLog("holle world"); } }
}
string state = ConfigurationManager.AppSettings["IsWriteLog"];这个是获取日记的开关
var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase +
ConfigurationManager.AppSettings["log4net"];
var fi = new System.IO.FileInfo(path);
log4net.Config.XmlConfigurator.Configure(fi);
上面fi就是log4net.config的文件位置,然后
log4net.Config.XmlConfigurator.Configure(fi); 然后就是LogHelper类了,这个是个简单的日记帮助类
/// <summary>
/// LogHelper的摘要说明。
/// </summary>
public class LogHelper {
/// <summary>
/// 静态只读实体对象info信息
/// </summary>
public static readonly log4net.ILog Loginfo = log4net.LogManager.GetLogger("loginfo");
/// <summary>
/// 静态只读实体对象error信息
/// </summary>
public static readonly log4net.ILog Logerror = log4net.LogManager.GetLogger("logerror"); /// <summary>
/// 添加info信息
/// </summary>
/// <param name="info">自定义日志内容说明</param>
public static void WriteLog(string info) {
try {
if (Loginfo.IsInfoEnabled) {
Loginfo.Info(info);
}
} catch { }
} /// <summary>
/// 添加异常信息
/// </summary>
/// <param name="info">自定义日志内容说明</param>
/// <param name="ex">异常信息</param>
public static void WriteLog(string info, Exception ex) {
try {
if (Logerror.IsErrorEnabled) {
Logerror.Error(info, ex);
}
} catch { }
}
}
最后是log4net.config设置文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!--设置日志存储路径-->
<param name="File" value="Data//WebLog//LogError//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="1024" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="DatePattern" value="yyyyMM/dd".log"" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--设置日志存储路径-->
<param name="File" value="Data//WebLog//LogInfo//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="1024" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="DatePattern" value="yyyyMM/dd".log"" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n消息描述:%c [%x] %n%m %n " />
</layout>
</appender>
</log4net>
</configuration>
然后就可以了,日记就在bin\Debug\Data\WebLog\LogInfo下
Log4net用法的更多相关文章
- 【转】Log4net用法
Log4net用法 http://www.cnblogs.com/hfliyi/archive/2012/05/20/2510783.html
- LOG4NET用法(个人比较喜欢的用法)
LOG4NET用法(个人比较喜欢的用法) http://fanrsh.cnblogs.com/archive/2006/06/08/420546.html
- supersocket 遇到的Failed to initialize 和 log4net用法
使用Bootstrap来通过配置启动SuperSocket的时候总是显示Failed to initialize! , 官网配置中 <superSocket> <servers&g ...
- Log4net用法(.config文件)
1.引用log4net.dll 2.在AssemblyInfo.cs中添加初始化: [assembly: log4net.Config.XmlConfigurator(ConfigFile = &qu ...
- Log4net用法(App.config配置)
配置文件 <configSections> <section name="log4net" type="log4net.Config.Log4NetCo ...
- Log4Net 用法记录
https://www.cnblogs.com/lzrabbit/archive/2012/03/23/2413180.html https://blog.csdn.net/guyswj/articl ...
- log4net用法实例
内容转载自:https://www.cnblogs.com/youring2/archive/2011/04/27/2030424.html 1.引用log4net.dll 2.在AssemblyIn ...
- WPF中log4net的用法
WPF中如何使用log4nethttp://www.cnblogs.com/C-Sharp2/archive/2013/04/12/WPF-LOG4NET.html Apache log4net Ma ...
- C# Log4Net 日志
C#使用Log4Net记录日志 第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi ...
随机推荐
- openerp7 时区问题
由于目前openerp 的时区,读取的是UTC 时间,而我国本地时间比UTC 快8小时,这个问题就导致:写入数据库的时候时间相差8小时,以及Openerp日志输出时间格式也相差8小时和 前端显示时间的 ...
- bzoj 2756奇怪的游戏
2756: [SCOI2012]奇怪的游戏 Time Limit: 40 Sec Memory Limit: 128 MB Description Blinke 最近喜欢上一个奇怪的游戏. 这个游戏 ...
- mate-desktop安装在其他目录时一些配置信息
1.mate-desktop安装在其他目录时一些配置信息 2.BIN目录下添加相应的mate-session_gtk2/3 3.首先配置如下环境变量 #!/bin/sh if [[ "${E ...
- fping tcping hping nmap nc
[root@test ~]# fping -a -g 192.168.40.1 192.168.40.240 |nl #-a 扫描alive主机,-g扫描一个段的ip地址 [root@test ...
- 使用Nominatim进行openstreetmap地址搜索/解析
Nominatim(来自拉丁语,意思是“名称”)是一个可以按名称和地址来搜索OSM中的数据,并生成OSM点的合成地址的工具(反向地理编码).可用在http://nominatim.openstreet ...
- sqlserver text/ntext 字段读取
sqlserver ntext 字段在读取时返回值 net.sourceforge.jtds.jdbc.ClobImpl@555bc78f 需要在连接数据库的URL后边加上";useLOBs ...
- SourceTree推送时,增加额外的远程仓库,不用每次都自定义粘贴复制网络
一.命令行添加 二.软件界面可以查看到结果 更新,以上是代码添加了远程仓库,最近,找到了不用代码,直接在文件夹里写地址来添加的方式.直接上图了.
- JVM Management API
JVM本身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代的数据.JVM当前所有线程及其栈相关信 息等等.各种JDK自带的剖析工具,包括jps.jstack. ...
- thinkphp3.2.3关于模板使用之一二
1.包含文件 使用场景:比如我们在编写网页布局的时候,可能每一个网页的头和脚是相同的,此时如果给每一个网页分别设置,未免太麻烦了.此时就可以使用带包含文件. 首先检查配置文件查看我们的主题目录在哪儿, ...
- C++中使用初始化列表的情况
http://blog.csdn.net/iceshirley/article/details/5688696 要理解这个问题,从概念上,我们要知道一点,那就是构造函数的执行过程会分成两个阶段:隐式或 ...