<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="LogTest2.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n" />
<param name="Footer" value="[Footer]\r\n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n" />
<param name="Footer" value="[Footer]\r\n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender> <root>
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
</configuration> log类文件
[assembly: log4net.Config.XmlConfigurator(ConfigFile="App.config",Watch = true)]
namespace LogTest
{
    public  class Logger
    {
        /// <summary>
        /// 输出日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="ex"></param>
        public static void WriteLog(Type t, Exception ex)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(t);
            log.Error("Error", ex);
        }         /// <summary>
        /// 输出日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="msg"></param>
        public static void WriteLog(Type t, string msg)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(t);
            log.Error(msg);
        }         public static void WriterInfoLog(Type t, string msg)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(t);
            log.Info(msg);
        }
    }
}

最新文章

  1. 爱上MVC~在Views的多级文件夹~续~分部页的支持
  2. swift邮箱手机验证
  3. js 闭包原理理解
  4. Repeater控件三层嵌套-内层Repeater添加绑定事件
  5. LED点阵显示名字
  6. POJ C程序设计进阶 编程题#2:四大湖
  7. iOS高级工程师面试
  8. WTL中菜单栏及工具栏项状态改变应注意的地方
  9. (๑•̀ㅂ•́)و✧随笔总目录ヾ(≧▽≦*)o
  10. 2018-2019 20165319 网络对抗 Exp4 恶意代码分析
  11. CSS实例详解:Flex布局
  12. Linux安装 火速入门
  13. Struts学习总结-02 上传文件
  14. 090实战 Hadoop离线项目介绍(不包括程序)
  15. Ubuntu软件操作的相关命令
  16. mysql为用户开启Trigger的权限
  17. OverAPI.com – 史上最全的开发人员在线速查手册
  18. 项目管理PMP输入输出ITTO联系记忆
  19. Ubuntu下彻底卸载wine
  20. R语言实战(十)处理缺失数据的高级方法

热门文章

  1. python学习之路(17)
  2. 揭秘Android Studio项目目录结构
  3. C++入门经典-例6.12-使用数组地址将二维数组输出
  4. 套接字之select系统调用
  5. android 播放音乐媒体文件(四)
  6. Vue复杂路由器的实现
  7. Android如何使用Https与Nohttp框架使用
  8. linux如何查看目录或文件夹的总大小--du命令
  9. JavaEE-实验三 Java数据库高级编程
  10. 使用多个fixture和fixture直接互相调用