博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
log4net 自定义日志级别记录多个日志
阅读量:4555 次
发布时间:2019-06-08

本文共 3636 字,大约阅读时间需要 12 分钟。

程序中原来只记录一个日志,现在我要写一个用户操作日志,需要与原来的日志分开,在config文件中一阵折腾无果(要么写不全,要么写重了,反正没办法完美分离,要么与现存代码没办法完美兼容),差点放弃准备自己直接写txt文件了。

在网上看到可以写自定义filter,可以and可以or,那还有什么事情是搞不定的呢? 代码比较简单,不解释。

public class AndFilter : FilterSkeleton    {        private bool acceptOnMatch;        private readonly IList
filters = new List
(); public override FilterDecision Decide(LoggingEvent loggingEvent) { if (loggingEvent == null) throw new ArgumentNullException("loggingEvent"); foreach (IFilter filter in filters) { if (filter.Decide(loggingEvent) != FilterDecision.Accept) return FilterDecision.Neutral; // one of the filter has failed } return FilterDecision.Accept; } public IFilter Filter { set { filters.Add(value); } } public bool AcceptOnMatch { get { return acceptOnMatch; } set { acceptOnMatch = value; } } } public class OrFilter : FilterSkeleton { private bool acceptOnMatch; private readonly IList
filters = new List
(); public override FilterDecision Decide(LoggingEvent loggingEvent) { if (loggingEvent == null) throw new ArgumentNullException("loggingEvent"); foreach (IFilter filter in filters) { if (filter.Decide(loggingEvent) == FilterDecision.Accept) return FilterDecision.Accept; } return FilterDecision.Deny; } public IFilter Filter { set { filters.Add(value); } } public bool AcceptOnMatch { get { return acceptOnMatch; } set { acceptOnMatch = value; } } }
public partial class Test : System.Web.UI.Page    {        static ILog log = log4net.LogManager.GetLogger(typeof(Test));        static ILog logForSubmitStudentCode = log4net.LogManager.GetLogger("SubmitStudentCode");        static ILog logForUserAction = log4net.LogManager.GetLogger("UserAction");        protected void Page_Load(object sender, EventArgs e)        {            log.Fatal("Fatal");            log.Error("Error");            log.Warn("Warn");            log.Info("info");            logForSubmitStudentCode.Logger.Log(typeof(Test), new log4net.Core.Level(50000, "SubmitStudentCode"), "SubmitStudentCode test", null);            logForUserAction.Logger.Log(typeof(Test), new log4net.Core.Level(50001, "UserAction"), "UserAction test", null);        }    }

 

转载于:https://www.cnblogs.com/nanfei/p/6397614.html

你可能感兴趣的文章
线程池
查看>>
WIFI密码破解全攻略
查看>>
iOS开发之画图板(贝塞尔曲线)
查看>>
4嵌入式作业io
查看>>
IntelliJ Idea编译报错:javacTask: 源发行版 1.7 需要目标发行版 1.7
查看>>
Cognos中新建SQLserver数据源的步骤
查看>>
HttpClient连接超时及读取超时
查看>>
SQL优化方法
查看>>
SEO必须掌握的高级搜索指令
查看>>
生产者消费者模型
查看>>
ORACLE 字符串超长问题解决方案
查看>>
使用ZooKeeper协调多台Web Server的定时任务处理(方案1)
查看>>
20171116 每周例行报告
查看>>
[C#] SHA1校验函数用法
查看>>
linux 下 VMware 提示Unable to change virtual machine power state:
查看>>
洛谷P1585 魔法阵
查看>>
线程 题待做
查看>>
PL/SQL可以连oracle,但是jdbc连不上 【转】
查看>>
使用 highlight.js 在网页中高亮显示java 代码 【原】
查看>>
[转]高颜值、好用、易扩展的微信小程序 UI 库,Powered by 有赞
查看>>