asp.net + winform + log4net 使用示例|using log4net with asp.net/winform
log4net, 是 apache.org 在 log4j的基础上推出的针对.NET程序的开源的日志组件。
log4net目前的最新版本是 1.2.10,log4net支持的日志保存方式,可谓丰富之极,包括:
- 存入SQL SERVER 数据库
- 存入ACCESS数据库
- 存入ORACLE数据库
- 存入DB2数据库
- 存入SQLLite数据库
- 生成asp.net 的trace模式的日志
- 缓存方式的日志
- 直接输出到控制台屏幕(支持彩色)
- 存入系统日志
- 生成单文件日志
- 生成多文件日志
- 保存在内存中
- 利用net send 发送给指定的网络域或主机
- 远程生成日志
- 利用SMTP发送日志到指定的邮箱
- 利用IIS的SMTP,将日志放入MAIL目录
- 利用UDP协议发送日志
上面的,各种日志保存方式的具体配置细节, 在这里
log4net的日志记录分为7级,从高到低为: OFF、FATAL、ERROR, WARN, INFO, DEBUG, ALL
要使用log4net,必须给log4net指定好配置文件, 有两种方法:
- 放入 web.config 或 app.config
- 放入一个单独的配置文件,如: log4net.config (推荐)
log4net的配置格式,大致如下:
<?xml version="1.0" encoding="utf-8" ?> <log4net debug="false"><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"><file value="log.txt" /><appendToFile value="true" /><rollingStyle value="Composite" /><datePattern value=".yyyyMMdd" /><maxSizeRollBackups value="10" /><maximumFileSize value="1MB" /><staticLogFileName value="true" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date %-5level %logger -%m%n" /></layout></appender><root><level value="WARN" /><appender-ref ref="RollingLogFileAppender" /></root> </log4net>
上面给出的是一个独立的log4net的配置文件,大体解释一下:
<log4net></log4net>是根,<root></root>是必须的,是所有日志格式的根,其中定义了,日志记录的基础级别,和当前启用的日志记录方式, 上面的 appender 将继承root的level
appender中的 type 指明了,采用哪种方式来记录日志,具体取值,大家去 这里 查看
layout是日志输出格式的定义:
%d, %date :表示当然的时间
%level : 表示日志的级别
%logger, %c:表示日志产生的主题,通常是所在的类名,便于定位问题
%t, %thread: 表示 所在进程
%L: 表示产生日志的代码所在的行数
%m, %message :表示日志的具体内容
%n, %newline: 换行
--------------------------------------------------------------------------
我上面的是一个多文件日志的配置, 每天产生一个日志文件,日志名字是 log.txt.20081228 的形式
下面重点说一下使用的具体步骤:
1. 加入 log4net.dll 的引用
2. 对于 web application 和 winform
在 AssemblyInfo.cs 中,加入
[assembly: log4net.Config.XmlConfigurator(ConfigFile="log4net.config", Watch=true)] //log4net.config 是配置文件的名称,可以自行设置 //Watch 是表示在程序运行期间是否监视该配置文件的变动
3. 对于 website 项目,需要在 global.asax.cs 里,加入
protected void Application_Start(Object sender, EventArgs e) {//配置log4netlog4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config")); }
4. 实际调用
class Program{private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);//System.Reflection.MethodBase.GetCurrentMethod().DeclaringType //是利用反射获取当前类的type,记录在日志中,便于定位日志发生的所在static void Main(string[] args){log.Error("这是一个错误日志");log.Fatal("这是一个致命的错误日志");log.Warn("这是一条警告日志");log.Info("这是一条普通信息");Console.Read();}}
下面附上一张生成的日志内容的截图:
原文:http://www.zu14.cn/2008/12/27/log4net/
转载于:https://www.cnblogs.com/sjcatsoft/archive/2008/12/27/1363551.html
asp.net + winform + log4net 使用示例|using log4net with asp.net/winform相关推荐
- C#:winform程序最简单调用log4net的日志功能
1.引用log4net包 右击项目->管理NuGet程序包 搜索log4net,并安装 2.配置log4net 在项目的App.config配置文件的节点中添加log4net的相关配置信息.文件 ...
- 各类最新Asp .Net Core 项目和示例源码
1.网站地址:http://www.freeboygirl.com 2.网站Asp .Net Core 资料 http://www.freeboygirl.com/blog/tag/asp%20net ...
- [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传
[代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Upload ...
- ASP.NET Web API 开篇示例介绍
ASP.NET Web API 开篇示例介绍 ASP.NET Web API 对于我这个初学者来说ASP.NET Web API这个框架很陌生又熟悉着. 陌生的是ASP.NET Web API是一个全 ...
- asp.net模板控件示例
asp.net模板控件示例 原文:asp.net模板控件示例 模板控件允许将控件数据与其表示形式相分离,模板化控件不提供用户界面. 编写它则是为了实现一个命名容器以及包含属性和方法可由宿主页访问的类, ...
- Visual Studio 2017【使用ASP.NET开发Web项目】第一课——初识ASP.NET,创建第一个ASP.NET程序
知识点:理解 ASP.NET 的概念和优势. 会创建 ASP.NET Web Form 程序. 理解 ASP.NET Web Form 程序的执行阶段. 会使用代码内嵌和代码后置两种方式进行编码. 1 ...
- asp.net 获得根文件夹在服务器上物理路径,asp.net获取网站目录物理路径
1,页面后台cs文件的相对网站根目录的路径/view/Atlas 复制代码 代码示例: string rootPath1= Server.MapPath("~"); string ...
- ASP.NET 动态输出Javascript 文本格式换行问题 [ASP.NET | C# | Response]
一.普通输出问题分析.测试 1. 我们先来看一段代码: /// <summary> /// 连接接数据库 /// </summary> ...
- asp向不同的用户发送信息_【asp.net core 系列】 1 带你了解一下asp.net core
0. 前言 这是一个新的系列,名字是<http://ASP.NET Core 入门到实战>.这个系列主讲http://ASP.NET Core MVC,辅助一些前端的基础知识(能用来实现我 ...
最新文章
- mysql索引设计策略_MySQL索引设计一些策略
- [跟我学UML] UML包图中的包引入和包合并
- rhel6 openldap
- Android之平台架构
- 查看数据库、表、索引的物理存储情况
- 上海 |《PMCAFF产品经理第一课》报名倒计时手慢无,微博副总裁、丁香园、1号店、淘宝产品总监私房干货分享...
- VS调试时怎么跳过for循环?
- mysql error code 145,MYSQL 错误#145解决方法
- Ubuntu 加速安装Opencv 3.4.3
- linux dd 光标在闪,linux dd详解
- Python解析JSON数据的基本方法
- Java基础002 Java9开发环境搭建(Win10平台)
- win10无法启用shockwave flash object的解决
- C语言求1到1000素数之和,C语言实现1-1000中所有素数的和
- Azkaban安装并设置定时任务Schedule以及邮件发送接收
- Silverlight游戏设计(Game Design):(六)场景编辑器之开源畅想
- 【各种视频网站去水印】无需任何软件 在浏览器 动动手指就行
- 未来的苹果和谷歌到底哪家强?
- CSS | 水平垂直居中都有哪几种方式
- pkpm弹性时程分析计算书怎么出_弹性时程分析——PKPM软件操作篇.pdf