app.config应当放置在解决方案的根目录下。具体流程如下:

第一步:应该下载log4net.dll并引入到你的项目中,下载见附件

第二步:需要配置相关的配置文件App.config或Web.config,顾名思义普通应用的配置文件
 为App.config,asp.net的配置文件为Web.config。有关log的配置如下:
 <configuration>
   <configSections>
       <!-- log4net的定义 -->
         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
   </configSections>

   <log4net>
  <!-- Console部分log输出格式的设定 -->
         <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
             <layout type="log4net.Layout.PatternLayout">
                 <conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
             </layout>
         </appender>

  <!-- 日志文件部分log输出格式的设定 -->
         <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
             <file value="具体的log文件路径名" />
             <appendToFile value="true" />
             <maxSizeRollBackups value="10" />
             <maximumFileSize value="1MB" />
             <rollingStyle value="Size" />
             <staticLogFileName value="true" />
             <layout type="log4net.Layout.PatternLayout">
                 <header value="[Header] " />
                 <footer value="[Footer] " />
                 <ConversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
             </layout>
         </appender>
  
  <!-- Setup the root category, add the appenders and set the default level -->
         <root>
             <level value="ALL" />
             <appender-ref ref="ConsoleAppender" />
             <appender-ref ref="RollingLogFileAppender" />
         </root>
     </log4net>
 </configuration>

第三步:项目的AssemblyInfo.cs里面加上[assembly: log4net.Config.XmlConfigurator()],这样项目工程和log4net就
 建立了关联。【其中app.config应当放在解决方案的根目录下!】

如果不放在跟目录下,应当用这种方式:[assembly:log4net.Config.XmlConfigurator(ConfigFileExtension=@"c:/app.config",Watch=true)]

第四步:在程序中写入日志 
以下例子是先实例化Ilog:

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
然后在Application_Error方法中写自定义消息: 
protected void Application_Error(Object sender, EventArgs e) 

log.Info("/r/n客户机IP:"+ Request.UserHostAddress +"/r/n<BR>错误地址:"+ Request.Url, 
Server.GetLastError()); 
}

Log4net在类库中的用法的更多相关文章

  1. 在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用

    前面的几篇文章已经比较完整地解释了怎么使用Log4Net,但是我们可能需要将Log4Net的日志类封装在自己的类库中,以便C/S或B/S程序进行调用.下面的示例程序简单地分为两层,一个是应用程序层We ...

  2. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  3. [CodeIgniter] 在自定义类库中使用config配置项

    通常情况下,Controller 中的方法可以通过 $this->config->item('item_name') 的方式来加载配置文件中的值 但是如果不继承 CI_Controller ...

  4. ORACLE 中ROWNUM用法总结(转)

    ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=) ...

  5. AngularJS select中ngOptions用法详解

    AngularJS select中ngOptions用法详解   一.用法 ngOption针对不同类型的数据源有不同的用法,主要体现在数组和对象上. 数组: label for value in a ...

  6. c#初学-多线程中lock用法的经典实例

    本文转载自:http://www.cnblogs.com/promise-7/articles/2354077.html 一.Lock定义     lock 关键字可以用来确保代码块完成运行,而不会被 ...

  7. 在类库中引用WebService的注意事件

    在VS中 添加引用服务之后 会在 类库中生成一个app.config的文件 把里面的配置节点 添加到web项目中的 web.config中 即可.不然会报 错误  

  8. Javacard 解释器怎样在API类库中找到源文件调用的类、方法或者静态域?

    申明:本篇非本人原创,是在阅读各种论文文献之后,对论文文献的一种梳理. 主要参考文献为: ------------------------------------------------------- ...

  9. WCF服务在类库中的引用

    在类库中引用了WCF服务,悲剧降临了,追踪日志看到下边一串: --------------------------------------------------------------------- ...

随机推荐

  1. C++语言-09-多任务

    概述 概念 计算机同时运行多个程序的能力,多任务处理的方法是:运行第一个程序的一段代码,保存工作环境:再运行第二个程序的一段代码,保存工作环境:--恢复第一个程序的工作环境,执行第一个程序的下一段代码 ...

  2. 在SQL2008中使用XML应对不确定结构的参数

    目的:统一接口,当数据结构发生变化时,前后端业务接口不发生变化,由业务具体解析结构. 规则:确定的接口用参数表(多行提交),不确定的参数用XML   DECLARE @r TABLE     (    ...

  3. 软工_Alpha阶段事后分析总计

    1.设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件主要解决狼人杀玩家在游戏时的一些痛点.因为之前自己对于游戏中那些不方便的地方有过体 ...

  4. luemn PHP_CodeSniffer的安装

    1.PHP_CodeSniffer是PEAR中的一个用PHP5写的用来检查嗅探PHP代码是否有违反一组预先设置好的编码标准的一个包,它是确保你的代码简洁一致的必不可少的开发工具,甚至还可以帮助程序员减 ...

  5. CentOS vsftp安装与配置

    详细配置说明:. http://www.cnblogs.com/app-lin/p/5189762.html 1.安装vsftpd yum install vsftpd 2.启动/重启/关闭vsftp ...

  6. C# Async Await 注意事项

    Avoid Using Async Void  --- 避免使用async void async void 只能用于事件处理函数.并且保证永远不在用户代码中调用这些事件处理函数. async void ...

  7. SQL挑战——如何高效生成编码

    有这样一个需求:需要根据输入的编码(这个编码值来自于数据库的一个表)生成下一个编码,编码规则如下所示(我们暂且不关心这个逻辑是否合理,只关心如何实现): 1: 最小值为A0000, 最大值为ZZZZZ ...

  8. InnoDB源码分析--事务日志(一)

    原创文章,转载请注明原文链接(http://www.cnblogs.com/wingsless/p/5705314.html) 在之前的文章<InnoDB的WAL方式学习>(http:// ...

  9. shell执行mysql命令

    难点主要在参数的传递方式吧,不过查资料后发现很简单. 1.使用-e参数传递命令,适用于简单语句      mysql -uuser -ppasswd -e "create database ...

  10. System V IPC(3)-共享内存

    一.概述                                                    1.共享内存允许多个进程共享物理内存的同一块内存区. 2.与管道和消息队列不同,共享内存 ...