惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
T
The Exploit Database - CXSecurity.com
The GitHub Blog
The GitHub Blog
量子位
S
SegmentFault 最新的问题
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Proofpoint News Feed
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
Threat Research - Cisco Blogs
I
Intezer
Hugging Face - Blog
Hugging Face - Blog
Spread Privacy
Spread Privacy
Microsoft Security Blog
Microsoft Security Blog
P
Proofpoint News Feed
Know Your Adversary
Know Your Adversary
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
Cyberwarzone
Cyberwarzone
L
LINUX DO - 热门话题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tenable Blog
Jina AI
Jina AI
A
About on SuperTechFans
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MyScale Blog
MyScale Blog
AWS News Blog
AWS News Blog
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
T
Threatpost
大猫的无限游戏
大猫的无限游戏
I
InfoQ
T
Tor Project blog
Project Zero
Project Zero
F
Full Disclosure
L
Lohrmann on Cybersecurity
P
Palo Alto Networks Blog
G
GRAHAM CLULEY
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
The Hacker News
The Hacker News
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
V2EX
The Cloudflare Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security

博客园 - 乔本生涯a

用来用去还是觉得SDCMS好用 Visual 2005 调试问题 收藏 图形分析报表,在VS2005 及SQL2005 Sqlserver2000 restore database 操作异常中止 水晶报表中人民币大写的转换函数 “/”应用程序中的服务器错误。 System.IO.DirectoryNotFoundException VB.Net + asp.net的一个web系统,使用SQL2000数据库 现在运行时偶尔会出现一个奇怪现象,一个用户登录时,登录后的界面竟然是另一个用户 水晶报表效果图 一个汉字转成拼音的代码 - 乔本生涯a - 博客园 自动定时备份数据 关于动网 ASP + Access 论坛问题及相应解决办法 .Net工程中几个文件的含意 组件 访问被拒绝 --“/”应用程序中的服务器错误。IIS重启不行,系统注销也不行 使用NHibernate进行开发 - 乔本生涯a - 博客园 Log4j进行日志操作 该页无法显示 您试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序。 解决方法 DataGrid表头跨行合并的实现 FreeTextBox .NET平台下WEB应用程序的部署(安装数据库和自动配置)(转)
log4net 1.2.9 的配置及使用
乔本生涯a · 2005-08-19 · via 博客园 - 乔本生涯a

下面说说我的做法,当然办法肯定不止这一个,我这个算是给新手一个指南 :)
问题是这样的,现在Log4net上公布的是1.2.9版,但是现在网上可以查到的资料都是基于1.2或一下的,这两个版本的不同在于,以前版本使用 log4net.Config.DOMConfigurator进行初始化配置,可是最新版里这个方法被弃用了,sdk文档上建议使用 log4net.Config.XmlConfigurator。可是详细的使用方法却不是很清楚,一开始我是按照以前版本的办法,没有加参数,直接放在 Application_Start方法中,当然不行……可是我对log4net的使用完全不了解,我想得先明确我的xml配置文件及使用方法没有问题。于是决定先去网上下一个以前版本的。好不容易找到一个,下载,配置……没有问题,哈~这证明就是初始化配置没有问题,于是再把版本换成1.2.9,并且拿出了厚厚的英文文档,配置着示例程序,终于弄明白该怎么使用。下面是具体的配置办法:
xml配置单独放到一个文件,我起的名字是log4net.config,然后在global.asax.cs中这样作:
protected void Application_Start(Object sender, EventArgs e)
{
//配置log4net
log4net.Config.XmlConfigurator.Configure( new FileInfo("log4net.config") );
}
使用一个FileInfo对象来指定配置文件,然后还需要加一个程序集特性
[assembly: log4net.Config.XmlConfigurator(ConfigFile="log4net.config", Watch=true)]
这个是用来指定我们使用了另外的xml配置文件。
完成这两步就没有问题了。

下面说说这个的使用,初用这个时候可能会被那一大堆文档和配置节吓倒,其实如果是简单应用的话,就一点也不麻烦,像我现在在stella2中的用法,现确定你要用什么来记录日志,比如我是把日志记录在数据库中,那就到文档中去查找这方面的配置示例,之后完整的复制到你的配置文件中就可以用了,呵呵
在这里有一点要注意:
<logger name="StellaLogger">
<level value="ALL"/>
<appender-ref ref="AdoNetAppender" />
</logger>
最好是在logger节里预先取好名字,然后就可以很方便的使用,比如我这个
public class Logger : IServices.ILogger
{
//使用自己取得名字
private static log4net.ILog log=log4net.LogManager.Exists("StellaLogger");
public void LogMessage(string msg)
{
log.Info(msg);
}

void Stella2.IServices.ILogger.LogException(string note, Exception exp)
{
log.Warn(note,exp);
}

void Stella2.IServices.ILogger.DebugTime(string note, Exception exp)
{
log.Debug(note,exp);
}
}

这个类是stella forum v2.0使用的日志记录类,大家可能注意到了,这个类实现了ILogger接口,这主要是因为log4net是第三方组件,为了避免依赖,所以使用了接口隔离的办法。使用的时候直接调用接口就可以,以后你要是不喜欢log4net而转为使用ms提供的那个日志记录组件,就不需要大动干戈的,只要把接口后面的实现换掉就可以
/// <summary>
/// 记录一条信息到日志
/// </summary>
/// <param name="msg">信息</param>
public static void LogMessage(string msg)
{
IServices.ILogger logger=Factory.ServicesFactory.GetLogger();
logger.LogMessage(msg);
}