Log4Net根据不同的Logger名称,生成日志文件到不同的地方。
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".log"" />
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".log"" />
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名称,生成日志文件到不同的地方。的更多相关文章
- 使用log4net生成日志文件
(一)使用log4net生成日志文件 1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编 ...
- logback.xml文件配置(按时间、文件大小和log名称生成日志)
之前项目中日志多用的log4j2,偶然看到在importNew看到了logback,自己查了下,发现Logback和log4j是非常相似的,其作者也是同一个人,并且logback相比于log4j性能更 ...
- (九)logback.xml文件配置(按时间、文件大小和log名称生成日志)
原文链接:https://www.cnblogs.com/hhhshct/p/9084036.html rollingPolicy 设置:<rollingPolicy class="c ...
- log4j自动生成日志文件配置
生成文件到默认位置: #生成日志文件 #log4j.appender.systemFile=org.apache.log4j.RollingFileAppender #按天生成 log4j.appen ...
- SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出
写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...
- 【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割
原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan ...
- Flask log配置,实现按照日期自动生成日志文件
Flask自带了logger模块,用来方便程序员群众记录日志,这里粘贴出来的是一段代码,用来初始化日志各项配置参数,并根据日期自动生成日志文件. #log配置,实现日志自动按日期生成日志文件def m ...
- NGINX按天生成日志文件的简易配置
NGINX按天生成日志文件的简易配置 0x01 最近后端童鞋遇到一个小需求,拆分nginx生成的log文件,最好是按天生成,看着她还有很多bug待改的状态,我说这个简单啊,我来吧.曾经搞node后端的 ...
- (一)使用log4net生成日志文件
1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编译后把log4net.dll引入项目. 2 ...
随机推荐
- 高性能 Windows Socket 组件 HP-Socket v2.2.3 正式发布
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
- 【HTML5】浅析html使用SSE(Server-Sent Events)连接JSP
目录结构: // contents structure [-] 关于SSE的一些话 什么是SSE SSE的浏览器支持情况 SSE的工作机制 使用SSE连接JSP文件 HTMl页面 服务器端 错误 错误 ...
- mvc model 传值两种方式区别
1: controller中: public actionresult index() { M m=new M(); return view(m) } view中: @model.phone vs 中 ...
- sharepoint2010问卷调查(3)-实现问卷的开始和结束时间(采用自定义字段类型)
接着上面的图片调查,sharepoint自带的问卷调查是没有开始和结束时间的.这个在项目过程不太实用.问卷一般有开始和结束时间的.因此需要自己 动手开发一个自定义字段类型字段.如下图: 开发添加栏目会 ...
- Java虚拟机JVM学习02 类的加载概述
Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...
- 动画效果 View控件的显示和隐藏效果
显示动画: mShowAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_ ...
- iOS--页面跳转(UITableView)
本文只要实现运用(UITableView)表格实现页面的传值,同时运用了代理(委托)传值. 目录文件列表如下: AddressBookViewController.h #import <UIKi ...
- sql 2012 sequence 速记
CodeSELECT id INTO #t1 FROM sys_id WHERE id < 3 SELECT next value for sequencebase FROM #t1 DROP ...
- js 使某个页面不允许在子iframe中打开的解决办法
在页面中添加如下js代码<script> if (window.parent !== window.self) { window.parent.location.reload(); }&l ...
- HTML5气泡悬浮框(已经加上完整文件)
源文件链接:http://pan.baidu.com/s/1pKHlNSn 设计气泡悬浮框 1.在网页设计中,气泡悬浮框常常用于页面中为某些对象显示提示信息,恰当地使用气泡悬浮框能够使网页布局更加完美 ...