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

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google DeepMind News
Google DeepMind News
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
Y
Y Combinator Blog
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
V2EX - 技术
V2EX - 技术
Webroot Blog
Webroot Blog
Google Online Security Blog
Google Online Security Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
AI
AI
N
News and Events Feed by Topic
S
Secure Thoughts
www.infosecurity-magazine.com
www.infosecurity-magazine.com
The Cloudflare Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tailwind CSS Blog
Vercel News
Vercel News
V
Vulnerabilities – Threatpost
Spread Privacy
Spread Privacy
Know Your Adversary
Know Your Adversary
人人都是产品经理
人人都是产品经理
I
Intezer
Schneier on Security
Schneier on Security
Martin Fowler
Martin Fowler
J
Java Code Geeks
K
Kaspersky official blog
H
Heimdal Security Blog
O
OpenAI News
I
InfoQ
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
云风的 BLOG
云风的 BLOG
Hacker News - Newest:
Hacker News - Newest: "LLM"
Blog — PlanetScale
Blog — PlanetScale
S
Schneier on Security
S
Security @ Cisco Blogs
Security Latest
Security Latest
PCI Perspectives
PCI Perspectives
H
Hacker News: Front Page
C
CERT Recently Published Vulnerability Notes
博客园_首页
The Last Watchdog
The Last Watchdog
罗磊的独立博客
L
LINUX DO - 热门话题
U
Unit 42
月光博客
月光博客
Security Archives - TechRepublic
Security Archives - TechRepublic
Scott Helme
Scott Helme

博客园 - 乔本生涯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);
}