log log4net用代码记录日志
log4net 用代码记录日志
今天在开发项目的时候,遇到跨域调用log4net中的类,出现了一个bug,提示LogImpl未标记可序列化,此时,我靠,麻烦了,这个类又不是咱们自己的,改源码我想应该不是很实际了把,然后有以下方案:
1.改源码;
2.从子域抛异常到主域,然后在主域里记录;
3.在子域配置app.cofig;
4.在子域用代码创建log;
方案4可用,其他都不可用;
方案一:修改源码:最后出现在System类中去了,此时,我靠,这个方案肯定不行,系统类肯定没法修改了;【果断排除】
方案二:从子域抛异常到主域,然后在主域里记录,此方案还算可以,只是主域和子域都会记录日志的;【不是很好】
方案三:在子域配置app.cofig,这个肯定不行,配置了,当子域中要用到时,两个会冲突;【果断排除】
方案四:在子域用代码创建log【下面这个类】,但也折腾了好几天,老是记录不到,经过调试发现:IsDebugEnabled =fasle;
这个属性是否记录日志;
问题找到了,所以就得找解决办法,又折腾了好久,通过源码找到了问题;
本想直接修改这个IsDebugEnabled=true;可是它是只读的不允许修改;
原来老大在这里啊,你害的我找了半天;由此为了让更多人少走弯路,才总结了此博客,也为自己做备忘;
Configured这个属性决定着IsDebugEnabled;
var hierarchy = new Hierarchy { Configured = true };
logger.Hierarchy = hierarchy;
创建日志记录;
public class ProjectsLog
{
/// <summary>
/// 创建Log
/// </summary>
public static ILog CreateLog(string name)
{
var appender = CreateAppender(name);
var log = LogManager.GetLogger(name);
var logger = (Logger)log.Logger;
logger.RemoveAllAppenders();
logger.AddAppender(appender);
logger.Level = Level.Info;
var hierarchy = new Hierarchy { Configured = true };
logger.Hierarchy = hierarchy;
return log;
} /// <summary>
/// 创建Appender
/// </summary>
private static IAppender CreateAppender(string name)
{
var baseDir = AppDomain.CurrentDomain.BaseDirectory;
dir = Path.Combine(baseDir , name); var appender = new RollingFileAppender
{
AppendToFile = true,
DatePattern = "yyyy-MM-dd'.log'",
File = dir + "/"
}; var layout = new PatternLayout { ConversionPattern = "-------------------------------------------------------------------------------%n[%d] %-5level - %m%n" };
layout.ActivateOptions(); appender.Layout = layout;
appender.MaxSizeRollBackups = ;
appender.RollingStyle = RollingFileAppender.RollingMode.Date;
appender.StaticLogFileName = false;
appender.Name = name;
appender.ActivateOptions();
return appender;
}
}
log log4net用代码记录日志的更多相关文章
- 译:在ASP.NET MVC5中如何使用Apache log4net 类库来记录日志
译文出处:http://www.codeproject.com/Articles/823247/How-to-use-Apache-log-net-library-with-ASP-NET-MVC 在 ...
- Log4Net(二)之记录日志到文档详解
原创文章,转载必需注明出处:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/log4net-%E4%BA%8C-%E4%B9%8B% ...
- PHP实现写LOG日志的代码
这篇文章给大家介绍的内容是关于PHP实现写LOG日志的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. public function write_log(){ //设置目录时间 ...
- log Log4NET配置
Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过 日志查看系统的运行过程,从而发现系统的问题.日志的作用:将 ...
- Log4Net(三)之记录日志到数据库
前面两篇短文向大家介绍了如何使用log4net,以及如何将log4net记录到文本文件中.下面本文将向大家介绍如何将log4net记录到数据库中. 经过前面的介绍,我想大家对使用log4net的过程已 ...
- log4net通过代码控制按分类输出
应用场景: 比如我们系统有5个任务,每个任务都是独立的流程,按照传统的方式这些流程的数据会输出到一起,这无疑给我们排查问题增加了难度,因为我们需要的是每一个任务一个独立的输出文件,比如任务A输出到lo ...
- ASP.NET Core 3.1使用log4net/nlog/Serilog记录日志
Serilog中的结构化日志支持非常好,而且配置简便.我能够比其他任何人更轻松地启动和运行Seirlog.Serilog中的日志可以发送到很多目的地.Serilog称这些东西为"接收器&qu ...
- dSYM atos crash log 定位到代码行的方法(转)
做iOS开发的时候,常常会遇到crash,需要分析call stack的时候.有时候App在别人的设备崩溃,把crash report在自己的机器上打开,Xcode没有自动的进行符号化.这时候就需要自 ...
- log4net 纯代码配置
当需要输出的日志很多的时候,每次修改config都很麻烦,于是想可不可以动态生成. 网上找的案例都是获取单个appender/logger的,此处例子是任意logger,appender相同 log4 ...
随机推荐
- jQuery 效果 - slideDown() 方法[菜单导航栏常用]
实例 以滑动方式显示隐藏的 <p> 元素: $(".btn2").click(function(){ $("p").slideDown(); }); ...
- 21、HierarchyViewer使用记录
1.是啥 HierachyViewer是一种能够方便开发人员了解activity中的布局信息的工具. 2.异常 HierachyViewer在未root过的设备或者低版本的设备是无法使用的 3.怎么办 ...
- 设计模式之策略模式(strategy)
策略模式原理:策略模式和简单工厂模式有点类似,只是简单工厂模式产生的是对象,策略模式产生的是根据对象产生的算法. 代码如下: #include <iostream> #include &l ...
- Leetcode#123 Best Time to Buy and Sell Stock III
原题地址 最直观的想法就是划分成两个子问题,每个子问题变成了:求在某个范围内交易一次的最大利润 在只能交易一次的情况下,如何求一段时间内的最大利润?其实就是找股价最低的一天买进,然后在股价最高的一天卖 ...
- max_flow(Edmond_Karp) 分类: ACM TYPE 2014-09-02 10:47 92人阅读 评论(0) 收藏
#include <cstdio> #include <iostream> #include <cstring> #include<queue> usi ...
- matrix_2015_1 138 - ZOJ Monthly, January 2015
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3844 第一个,n个数,每次操作最大数和最小数都变成他们的差值,最后n个数相 ...
- 2011 Asia Fuzhou Regional Contest
Xiangqi http://acm.hdu.edu.cn/showproblem.php?pid=4121 模拟,用高内聚低耦合的思想来写模拟题还是很好的,提高了函数的可重用性,程序的可读性,正确性 ...
- LAMP一键安装包-CentOS 5/6下自动编译安装Apache,MySQL,PHP
http://www.centos.bz/lamp/ 此安装包已经不再维护,请使用新版http://www.centos.bz/ezhttp/. 适用环境: 系统支持:CentOS-5 (32bit/ ...
- webvector将html转为svg或者png图片的工具
有些js较多,html组织不好的页面转换起来很不理想,cnblog转换的还不错 http://cssbox.sourceforge.net/webvector/
- 理解Session的几种模式
一.写在前面 我们在使用ASP.NET开发的过程中,有时会进行数据存储以实现请求前后的状态保持(HTTP是无状态保持的协议),而Session作为一种快速简单易于实现的方式被我们经常使用,当然如果出于 ...