我使用的是Umbraco 7.5.12。
我有一个应该记录错误的类,但这些条目不会出现在umbraco日志文件中。
虽然发给管理员的消息发送良好:
public class ErrorReporting
{
private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public static void LogError(Exception ex, string messageIntro, string id = null)
{
Logger.Error(messageIntro, ex);
Error adminErrorMessage = new Error();
adminErrorMessage.Send(ex, id);
}
}
日志文件的url似乎设置正确:
<file type="log4net.Util.PatternString" value="App_Data\Logs\UmbracoTraceLog.%property{log4net:HostName}.txt" />
和umbraco正确记录错误。
ErrorReporting
类在一个单独的项目中,无论如何都在起始项目中引用,上面的日志文件设置显然在启动项目中,但它不应该是问题吗?
我检查了启用log4net的设置:
bool IsErrorEnabled = Logger.IsErrorEnabled;
bool IsFatalEnabled = Logger.IsFatalEnabled;
bool IsDebugEnabled = Logger.IsDebugEnabled;
bool IsInfoEnabled = Logger.IsInfoEnabled;
bool IsWarnEnabled = Logger.IsWarnEnabled;
且IsDebugEnabled
为假。这可能是一个问题吗?
答案 0 :(得分:1)
我通常使用Loghelper
Umbraco.Core.Logging
using Umbraco.Core.Logging;
public class ErrorReporting
{
public static void LogError(Exception ex, string messageIntro, string id = null)
{
LogHelper.Error(typeof(ErrorReporting), messageIntro, ex);
Error adminErrorMessage = new Error();
adminErrorMessage.Send(ex, id);
}
}
可以找到一些其他信息here
答案 1 :(得分:1)
// Add the JSP view resolver.
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp();
// OR
registry.jsp("/",".jsp");
}
//... snip
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry
.addViewController("/yourpath")
.setViewName("yourtemplate");
}
可能会阻止IsDebugEnabled
个邮件发送日志文件(在Umbraco核心中可能存在很多这些邮件)。如果LogHelper.Debug
为真,则可能显示错误消息。
我知道建议使用IsErrorEnabled
,但我通常在登录时使用静态Umbraco实例:
ILogger