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. 大家一起撸代码之——Hibernate各种主键生成策略与配置详解

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...

  2. jquery图片查看插件,支持旋转、放大、缩小、拖拽、缩略图(仿qq图片查看)

    最近做了一个jquery图片查看的插件,目的是能精确查看图片的详情,插件支持图片旋转.放大.缩小.拖拽.缩略图显示,界面效果是按照window的qq查看图片功能写的,当然不尽相同. 具体功能: 1. ...

  3. YARN的内存和CPU配置

    时间 2015-06-05 00:00:00  JavaChen's Blog 原文  http://blog.javachen.com/2015/06/05/yarn-memory-and-cpu- ...

  4. Day Tips:Remote 服务器黑屏

    如果是台式机:CTRL+ALT+End 笔记本一般情况下End建和其他的键混合使用,所以是Fn+CTRL+ALT+End

  5. Java虚拟机JVM学习05 类加载器的父委托机制

    Java虚拟机JVM学习05 类加载器的父委托机制 类加载器 类加载器用来把类加载到Java虚拟机中. 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap ...

  6. 我的Android第二章:Android目录结构

    嗨!各位,小编又和大家分享知识啦,在昨天的博客笔记中小编给大家讲解了如何去配置Android工具以及SDK中的一些配置,那在今天的学习小编会带给大家哪些Android知识呢?首先我们看一下今天的学习目 ...

  7. 2016最新CocoaPods安装和错误解决 + 自己的经验

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Times; color: #333333; background-color: #fffff ...

  8. android自定义activity

    今天公司有个需要需要自动弹出界面,而dialog又不符合要求,所以自定义的一个activity的样式 首先在androidmainfest.xml上注册你的activity <activity ...

  9. 【读书笔记】iOS-数据交换格式

    数据交换格式主要分为:纯文本格式,XML格式和JSON格式. 一,XML数据交换格式. 多年来,一直在各种计算机语言之间使用.它是老牌的,经典的,灵活的数据交换方式. 1,文档结构. 2,XML文档解 ...

  10. file get contents 访问不了域名原因

    file get contents('域名'); 居然不好用 后来发现 etc/hosts 127.0.0.1  www.baidu.com  这样的 #127.0.0.1  www.baidu.co ...