我想log4net的和ELMAH工作。我试图把代码一起AppHost.cs:ServiceStack记录设置
public class AppHost : AppHostBase {
//Tell ServiceStack the name and where to find your web services
public AppHost() : base("Backbone.js TODO", typeof(TodoService).Assembly) { }
public override void Configure(Funq.Container container) {
//...
//Log4Net 1.2.11
log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));
container.Register(x => new Log4NetFactory(true));
//Elmah
container.Register(x => new ElmahLogFactory(container.Resolve<Log4NetFactory>()));
LogManager.LogFactory = container.Resolve<ElmahLogFactory>();
container.Register<ILog>(x => LogManager.GetLogger(GetType()));
//...
}
Log4net.config,这也是目前只是一个控制台记录...
<?xml version="1.0" encoding="utf-8" ?>
<log4net debug="true">
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%method %-5level - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="TraceAppender"/>
</root>
</log4net>
那么无论是必需的记录:
ILog Logger {get; set;} //injected by ioc
//...
Logger.Info("Print something");
的Logger.Info("....");
线被称为没有错误,但既不log4net的也不ELMAH正在打印任何输出在我的代码的上方。如果你有经验,建立log4net的或与ELMAH ServiceStack,请你指出我做了什么错?
编辑
改变了FileInfo的完整路径,它的工作是斯特凡艾格里建议!
或单击项目log4net.config xml文件,在属性框中
“复制到输出 - >复制,如果新”
这将做,太。
然后,像这样出现:
Auto-attach to process '[11308] w3wp.exe' on machine 'Desktop' succeeded.
//... printing info now ...
Backbone.Todos.AppHost: Info INFO - TodoService OnGet
//... but then after a coffee break ...
log4net: Hierarchy: Shutdown called on Hierarchy [log4net-default-repository]
// ... Oops, no longer printing any log ...
这似乎是Web应用程序去关闭本身在闲置一段时间后。然后log4net无法重新启动,当我点击Web应用程序...任何想法如何防止这种情况?
EDIT 2
切换到NLOG,从此过上幸福......
完整路径是工作!谢谢!问题进一步发展。请参阅编辑。 – Tom