类库项目采用Autofac实现面向切面编程,使用log4net记录日志,另有一个web api服务调用这个类库程序,但调用起来后不打日志。
调用
public class Logger : ILogger { public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("Logger"); public void info(string info) { if (loginfo.IsInfoEnabled) loginfo.Info(info); } }
log4net.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志路径--> <param name= "File" value= "App_Log\"/> <!--是否是向文件中追加日志--> <param name= "AppendToFile" value= "true"/> <!--log保留天数--> <param name= "MaxSizeRollBackups" value= "10"/> <!--日志文件名是否是固定不变的--> <param name= "StaticLogFileName" value= "false"/> <!--日志文件名格式为:2008-08-31.log--> <param name= "DatePattern" value= "yyyy-MM-dd".log""/> <!--日志根据日期滚动--> <param name= "RollingStyle" value= "Date"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n %loggername" /> </layout> </appender> <root> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level value="ALL" /> <!--<appender-ref ref="ColoredConsoleAppender"/>--> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net> </configuration>
你有没有启用了配置?将log4net的配置写在额外的xml文件中,应该要调用XmlConfigurator.Configure()或者[assembly: log4net.Config.XmlConfigurator()] 来启用配置。更具体的可以参考:
http://logging.apache.org/log4net/release/manual/configuration.html
前两个回答,一个连别人给出的内容都没仔细看,一个别人问不能log4net叫人家看看postshap,这什么鬼
问题解决了,非常感谢
貌似没有看到log的存储路径
log4net.config有写
<!--日志路径-->
<param name= "File" value= "App_Log\"/>
Autofac怎么能叫面向切面呢?
看看PostSharp吧
http://git.oschina.net/lishilei0523/SD.AOP
Autofac 中有拦截器,确实可以面向切面。
借助Autofac的拦截技术实现的切面。Pastsharp收费吧,看有人用kingaop,但用的不多,没敢用。