1.定义日志记录类

   1:   public class Log4NetLogger : ISystemLogger
   2:      {
   3:          static log4net.ILog securityLogger = log4net.LogManager.GetLogger("SecurityLog");
   4:          static log4net.ILog sysLogger = log4net.LogManager.GetLogger("SystemLog");
   5:   
   6:          public SystemLogLevel LogLevel
   7:          {
   8:              get
   9:              {
  10:                  if (ApplicationManager.SystemInfo.SystemLogLevel.HasValue)
  11:                  {
  12:                      return (SystemLogLevel)ApplicationManager.SystemInfo.SystemLogLevel;
  13:                  }
  14:                  else
  15:                  {
  16:                      return SystemLogLevel.None;
  17:                  }
  18:              }
  19:              set
  20:              {
  21:                  ApplicationManager.UpdateLogLevel(value);
  22:              }
  23:          }
  24:   
  25:          /// <summary>
  26:          /// 输出错误级别日志
  27:          /// </summary>
  28:          /// <param name="message">输出的消息</param>
  29:          public void Error(string message)
  30:          {
  31:              //记录日志
  32:              writeSysLog(SystemLogLevel.Error, message);
  33:          }
  34:   
  35:          /// <summary>
  36:          /// 输出警告级别日志
  37:          /// </summary>
  38:          /// <param name="message">输出的消息</param>
  39:          public void Warning(string message)
  40:          {
  41:              //记录日志
  42:              writeSysLog(SystemLogLevel.Warning, message);
  43:          }
  44:   
  45:          /// <summary>
  46:          /// 输出信息级别日志
  47:          /// </summary>
  48:          /// <param name="message">输出的消息</param>
  49:          public void Info(string message)
  50:          {
  51:              //记录日志
  52:              writeSysLog(SystemLogLevel.Info, message);
  53:          }
  54:   
  55:          /// <summary>
  56:          /// 输出调试级别日志
  57:          /// </summary>
  58:          /// <param name="message">输出的消息</param>
  59:          public void Debug(string message)
  60:          {
  61:              //记录日志
  62:              writeSysLog(SystemLogLevel.Debug, message);
  63:          }
  64:   
  65:          /// <summary>
  66:          /// 记录个资法案日志
  67:          /// </summary>
  68:          public void SecurityLog(string message)
  69:          {
  70:              writeSecurityLog(message);
  71:          }
  72:   
  73:          /// <summary>
  74:          /// 记录系统日志
  75:          /// </summary>
  76:          /// <param name="logLevel">日志级别</param>
  77:          /// <param name="message">输出的消息</param>
  78:          private void writeSysLog(SystemLogLevel logLevel, string message)
  79:          {
  80:              string format = "ClientIP={0},CurrentUser={1},Message={2}";
  81:              ClientInfo clientInfo = WebServerHelper.CurrentClientInfo;
  82:              string fullMsg = string.Format(format, clientInfo.UserHostAddress, WebServerHelper.CurrentUserID, message);
  83:              if (LogLevel >= logLevel)
  84:              {
  85:                  switch (logLevel)
  86:                  {
  87:                      case SystemLogLevel.Debug:
  88:                          sysLogger.Debug(fullMsg);
  89:                          break;
  90:                      case SystemLogLevel.Error:
  91:                          sysLogger.Error(fullMsg);
  92:                          break;
  93:                      case SystemLogLevel.Info:
  94:                          sysLogger.Info(fullMsg);
  95:                          break;
  96:                      case SystemLogLevel.Warning:
  97:                          sysLogger.Warn(fullMsg);
  98:                          break;
  99:                  }
 100:              }
 101:          }
 102:          /// <summary>
 103:          /// 记录个资法案日志
 104:          /// </summary>
 105:          /// <param name="message"></param>
 106:          private void writeSecurityLog(string message)
 107:          {
 108:              string format = "ClientIP={0},CurrentUser={1},System={2},Message={3}";
 109:              ClientInfo clientInfo = WebServerHelper.CurrentClientInfo;
 110:              string fullMsg = string.Format(format, clientInfo.UserHostAddress, WebServerHelper.CurrentUserID,ApplicationManager.SystemCode, message);
 111:              securityLogger.Info(fullMsg);
 112:          }
 113:      }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }2.设置配制文件:

   1:  <configSections>        
   2:          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
   3:  </configSections>
   4:  <log4net>
   5:          <appender name="SystemLogAppender" type="log4net.Appender.RollingFileAppender">
   6:              <file value="OA_Log/App_Log/" />
   7:              <appendToFile value="true" />
   8:              <rollingStyle value="Date" />
   9:              <staticLogFileName value="false" />
  10:              <datePattern value="yyyyMMdd&quot;.log&quot;" />
  11:              <layout type="log4net.Layout.PatternLayout">
  12:                  <!--输出格式-->
  13:                  <conversionPattern value="%date %-5level %message%newline" />
  14:              </layout>
  15:              <filter type="log4net.Filter.LoggerMatchFilter">
  16:                  <loggerToMatch value="SystemLog" />               
  17:              </filter>
  18:              <filter type="log4net.Filter.DenyAllFilter" />
  19:          </appender>
  20:          <appender name="SecurityLogAppender" type="log4net.Appender.RollingFileAppender">
  21:              <file value="OA_Log/Access_Log/" />
  22:              <appendToFile value="true" />
  23:              <rollingStyle value="Date" />
  24:              <staticLogFileName value="false" />
  25:              <datePattern value="yyyyMMdd&quot;.log&quot;" />
  26:              <layout type="log4net.Layout.PatternLayout">
  27:                  <!--输出格式-->
  28:                  <conversionPattern value="%date %-5level %message%newline" />
  29:              </layout>
  30:              <filter type="log4net.Filter.LoggerMatchFilter">
  31:                  <loggerToMatch value="SecurityLog" />               
  32:              </filter>
  33:              <filter type="log4net.Filter.DenyAllFilter" />
  34:          </appender>        
  35:          <root>
  36:              <level value="ALL"/>            
  37:              <appender-ref ref="SystemLogAppender"/>
  38:              <appender-ref ref="SecurityLogAppender"/>            
  39:          </root>       
  40:  </log4net>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

3.在Global.asax的Application_Start事件中加入初始化代码:

   1:   protected void Application_Start(object sender, EventArgs e)
   2:   {
   3:              log4net.Config.XmlConfigurator.Configure();         
   4:   }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Log4Net根据不同的Logger名称,生成日志文件到不同的地方。的更多相关文章

  1. 使用log4net生成日志文件

    (一)使用log4net生成日志文件   1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编 ...

  2. logback.xml文件配置(按时间、文件大小和log名称生成日志)

    之前项目中日志多用的log4j2,偶然看到在importNew看到了logback,自己查了下,发现Logback和log4j是非常相似的,其作者也是同一个人,并且logback相比于log4j性能更 ...

  3. (九)logback.xml文件配置(按时间、文件大小和log名称生成日志)

    原文链接:https://www.cnblogs.com/hhhshct/p/9084036.html rollingPolicy 设置:<rollingPolicy class="c ...

  4. log4j自动生成日志文件配置

    生成文件到默认位置: #生成日志文件 #log4j.appender.systemFile=org.apache.log4j.RollingFileAppender #按天生成 log4j.appen ...

  5. SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出

    写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...

  6. 【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割

    原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan ...

  7. Flask log配置,实现按照日期自动生成日志文件

    Flask自带了logger模块,用来方便程序员群众记录日志,这里粘贴出来的是一段代码,用来初始化日志各项配置参数,并根据日期自动生成日志文件. #log配置,实现日志自动按日期生成日志文件def m ...

  8. NGINX按天生成日志文件的简易配置

    NGINX按天生成日志文件的简易配置 0x01 最近后端童鞋遇到一个小需求,拆分nginx生成的log文件,最好是按天生成,看着她还有很多bug待改的状态,我说这个简单啊,我来吧.曾经搞node后端的 ...

  9. (一)使用log4net生成日志文件

    1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编译后把log4net.dll引入项目. 2 ...

随机推荐

  1. 高效 Java Web 开发框架 JessMA v3.2.3 正式发布

    JessMA(原名:Portal-Basic)是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hib ...

  2. tomcat 5.5、6、7各版本的web-app标准

    刚把上周说的公司内各工程的web.xml给统一了,顺便看了下每个tomcat版本对应的标准servlet版本,如下: The XSD version is preferred since JSP 2. ...

  3. Ubuntu 12.10 配置MyEclipes 10.7环境(加破解)

    下周要在Ubuntu中调试程序,所以今天抽空先配置好Myeclipse环境. 准备: JDK  下载地址: http://www.oracle.com/technetwork/java/javase/ ...

  4. 25款响应式,支持视网膜显示的 Wordpress 主题

    响应式和现代设计风格的多用途 WordPress 主题与能够非常灵活的适应所有设备.而高级主题能够更大可能性的轻松定制.所有的主题是完全响应式的,您可以从主题选项中禁用/启用响应模式. 多用途的响应式 ...

  5. sizzle源码分析 (2)ID 类 tag querySelectorAll 快速匹配

    不是所有的选择器都需要去分词,生成相应的匹配函数,这样流程比较复杂,当浏览器具备原生的方法去匹配元素是,没有理由不优先匹配,下面看看进入Sizzle后,它是怎么优先匹配这些元素的: function ...

  6. 微信 小程序 drawImage wx.canvasToTempFilePath wx.saveFile 获取设备宽高 尺寸问题

    以下问题测试环境为微信开发者0.10.102800,手机端iphone6,如有不对敬谢指出. 根据我的测试,context.drawImage,在开发者工具中并不能画出来,只有预览到手机中显示. wx ...

  7. Xcode中XVim的常用操作

  8. AndroidInject项目使用动态代理增加对网络请求的支持

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3540427.html AndroidInject项目是我写的一 ...

  9. 操作系统开发系列—11.ELF格式 ●

    ELF文件的结构如下图所示: ELF文件由4部分组成,分别是ELF头(ELF header).程序头表(Program header table).节(Sections)和节头表(Section he ...

  10. 我的BluetoothChat示例源码阅读笔记

    BluetoothChat核心类BluetoothChatService,该类用于管理与其他设备的蓝牙连接和设置.该类包含AcceptThread.ConnectedThread.ConnectThr ...