这个初始化要在 获取 ILog 接口的代码之前完成, 之后按通常方式使用 log4net 就行了.

不用携带 config 配置文件.

方法1:

  1. /// <summary>
  2. /// 使用文本记录异常日志
  3. /// </summary>
  4. /// <Author>Ryanding</Author>
  5. /// <date>2011-05-01</date>
  6. public void LoadFileAppender()
  7. {
  8. string currentPath = AppDomain.CurrentDomain.BaseDirectory;
  9. currentPath = Path.Combine(currentPath, @"Log");
  10.  
  11. string txtLogPath = Path.Combine(currentPath, "ErrorLog.txt");
  12.  
  13. log4net.Repository.Hierarchy.Hierarchy hier =
  14. (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
  15.  
  16. if (hier != null)
  17. {
  18. FileAppender fileAppender = new FileAppender();
  19. fileAppender.Name = "LogFileAppender";
  20. fileAppender.File = txtLogPath;
  21. fileAppender.AppendToFile = true;
  22.  
  23. PatternLayout patternLayout = new PatternLayout
  24. {
  25. ConversionPattern =
  26. "记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"
  27. };
  28. patternLayout.ActivateOptions();
  29. fileAppender.Layout = patternLayout;
  30.  
  31. //选择UTF8编码,确保中文不乱码。
  32. fileAppender.Encoding = Encoding.UTF8;
  33.  
  34. fileAppender.ActivateOptions();
  35. BasicConfigurator.Configure(fileAppender);
  36. }
  37. }

方法2:

  1. static bool InitializeLogSystem()
  2. {
  3. // 通过配置文件偷来的配置项
  4. //<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  5. // <file value="Data/RollingLogFile.log" />
  6. // <appendToFile value="true" />
  7. // <maxSizeRollBackups value="3" />
  8. // <maximumFileSize value="1MB" />
  9. // <rollingStyle value="Size" />
  10. // <staticLogFileName value="true" />
  11. // <layout type="log4net.Layout.PatternLayout">
  12. // <conversionPattern value="%date [%thread] %-5level %logger [%property{url}] - %message%newline" />
  13. // </layout>
  14. //</appender>
  15. log4net.Appender.RollingFileAppender appender = new log4net.Appender.RollingFileAppender();
  16. // winform 的取路径方式呢
  17. appender.File = System.IO.Path.Combine(Application.StartupPath, "RollingLogFile.log");
  18. appender.AppendToFile = true;
  19. appender.MaxSizeRollBackups = ;
  20. appender.MaximumFileSize = "1MB";
  21. appender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Size;
  22. appender.StaticLogFileName = true;
  23. appender.Layout = new log4net.Layout.PatternLayout("%date [%thread] %-5level - %message%newline");
  24. appender.ActivateOptions();// 这个要调用一下呢
  25. log4net.Config.BasicConfigurator.Configure(appender);
  26. return true;
  27. }

C# 代码 手工 配置 Log4Net 2种方法的更多相关文章

  1. Notepad++去除代码行号的几种方法

    Notepad++去除代码行号的几种方法 (转自:http://hi.baidu.com/beer_zh/item/e70119309ee587f2a8842892)问:在网页中复制代码时,常常遇到高 ...

  2. 【Java】java数据库连接池配置的几种方法

    今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,希望对大家有所帮助:(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下面建文件夹META- ...

  3. yum源配置的三种方法

    (一)yum源概述 yum需要一个yum库,也就是yum源.默认情况下,CentOS就有一个yum源.在/etc/yum.repos.d/目录下有一些默认的配置文件(可以将这些文件移到/opt下,或者 ...

  4. FPGA的EPCS 配置的2种方法 FPGA下载程序的方法(EPCS)

    使用主动串行配置模式对Cyclone FPGA进行配置前,必须将配置文件写入串行配置器件EPCS.将配置文件写入EPCS的方法有三种: (1)在Quartus II的Programmer中,通过专门与 ...

  5. Linux系统下安装jdk及环境配置(两种方法)

    https://blog.csdn.net/qq_42815754/article/details/82968464 这里介绍两种linux环境下jdk的安装以及环境配置方法在windows系统安装j ...

  6. .NET微信开发 配置微信公众号基本配置的几种方法

    自己最近搞了公众号,记录一下. 目的就是为了在微信公众号里启用服务器配置. 微信文档 其实微信文档已经写得很清楚了,也很简单.(微信的目的就是它发送一个get请求,希望我们能接受一下,然后给微信回个数 ...

  7. uiautomator2.0的配置的两种方法

    方法一(使用在线下载的方式导入依赖): 1.首先创建项目工程,创建的项目的android_api版本要与测试的android_api版本一致(24就是24 ,不能26或者17去兼容) 2.然后就是将本 ...

  8. 关于 cmd 控制台默认代码页编码的几种方法

    造成的中文及特殊字符乱码. 第一种:临时性修改编码 使用 chcp 命令,例如 chcp 65001 ,这回将当前代码页变为 utf-8编码,不过这种方式在关闭 cmd 之后会自动失效. 常用的编码及 ...

  9. SNMP安全配置的两种方法(也可同一时候兼顾配置两种方法)

    方法一(最简单安装): 安装 Net-SNMP CentOS及其他RedHat系列产品提供了net-snmp的二进制包.我们能够直接从源里安装. shell> yum install net-s ...

随机推荐

  1. Handler嵌套--可以

    package com.example.handlernestdemo; import android.support.v7.app.ActionBarActivity; import android ...

  2. jquery的attr和prop区别之实例

    对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. html文件 <tr> <th>& ...

  3. selenium 调用方法

    #coding:utf-8 from selenium import webdriver url = "http://demo.testfire.net" chrome_optio ...

  4. setInterval/setTimeout传参方法

    网上文章说有3种方法,对于我来说一种方法就够了: <script> var user_name='离间计' //定时器 异步运行 function hello(name){ alert(n ...

  5. JComboBox添加item的赋值类型问题!不一致的话会导致不能更改jcombobox的选择值

    在用swing做页面的时候,往往需要设置字体样式,那么,如何用一种方法设置字体之后,在后面的其他页面就不需要再次设置字体了呢? 下面这个方法就可以解决了: JComboBox在对它进行添加子项的时候, ...

  6. java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

    一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...

  7. 在elasticsearch里如何高效的使用filter

    今天在做查询category的时候,遇到一个问题,查询出来的cateogry为food,fun的形式.但是我需要的只是food或者fun 不包含逗号. 开始想着在aggs后再做过滤,这样有些麻烦.遂在 ...

  8. JMeter接口测试中文乱码问题总结

    在测试过程中遇到了请求json串中文乱码,所以查看了这篇文章,将字符集修改后,乱码问题已经处理. 转载http://blog.csdn.net/qing_java/article/details/69 ...

  9. shell 重定向输入

    #!/bin/bash NC_START="nc 192.168.76.227 9999" LOOP= ;i<$LOOP;i++)) do $NC_START << ...

  10. C3:建造者模式 Builder

    将一个复杂对象的创建与表示分离,使得同样的构建过程可以创建不同的表示. 应用场景: A.创建这个对象通常需要较多的参数,才能完整的表示该对象.B.类的各个组成部分的具体实现类或算法经常面临变化,但将他 ...