Adds new method to ILogger for taking only the exception - NOTE will add an empty string for the message

This commit is contained in:
Warren
2018-08-23 12:14:07 +01:00
parent 3baf5697e4
commit 66e4e1f0f4
5 changed files with 46 additions and 42 deletions

View File

@@ -13,6 +13,12 @@ namespace Umbraco.Core.Logging
System.Diagnostics.Debug.WriteLine(message + Environment.NewLine + exception, reporting.FullName);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception)
{
System.Diagnostics.Debug.WriteLine(Environment.NewLine + exception, reporting.FullName);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception, string messageTemplate, params object[] args)
{

View File

@@ -15,6 +15,13 @@ namespace Umbraco.Core.Logging
/// <param name="message">A message.</param>
void Error(Type reporting, Exception exception, string message);
/// <summary>
/// Logs an error message NOTE: This will log an empty message string
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="exception">An exception.</param>
void Error(Type reporting, Exception exception);
/// <summary>
/// Logs an error message - using a structured log message
/// </summary>

View File

@@ -50,43 +50,18 @@ namespace Umbraco.Core.Logging
}
/// <inheritdoc/>
[Obsolete("Use the message template version")]
public void Error(Type reporting, Exception exception, string message)
{
var logger = Log.Logger;
if (logger == null) return;
var dump = false;
if (IsTimeoutThreadAbortException(exception))
{
message += "\r\nThe thread has been aborted, because the request has timed out.";
// dump if configured, or if stacktrace contains Monitor.ReliableEnter
dump = UmbracoConfig.For.CoreDebug().DumpOnTimeoutThreadAbort || IsMonitorEnterThreadAbortException(exception);
// dump if it is ok to dump (might have a cap on number of dump...)
dump &= MiniDump.OkToDump();
}
if (dump)
{
try
{
var dumped = MiniDump.Dump(withException: true);
message += dumped
? "\r\nA minidump was created in App_Data/MiniDump"
: "\r\nFailed to create a minidump";
}
catch (Exception e)
{
message += string.Format("\r\nFailed to create a minidump ({0}: {1})", e.GetType().FullName, e.Message);
}
}
logger.ForContext(reporting).Error(exception, message);
Error(reporting, exception, message, null);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception)
{
Error(reporting, exception, string.Empty);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues)
{
var dump = false;

View File

@@ -8,7 +8,7 @@ namespace Umbraco.Core.Logging
public static class LoggerExtensions
{
/// <summary>
/// Logs an error message.
/// Logs an error message
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
@@ -20,7 +20,7 @@ namespace Umbraco.Core.Logging
}
/// <summary>
/// Logs a warning message.
/// Logs an error message with a structured message template
/// </summary>
/// <typeparam name="T">The reporting type</typeparam>
/// <param name="logger">The logger.</param>
@@ -32,6 +32,17 @@ namespace Umbraco.Core.Logging
logger.Error(typeof(T), exception, messageTemplate, propertyValues);
}
/// <summary>
/// Logs an error message NOTE: This will log an empty message string
/// </summary>
/// <typeparam name="T">The reporting type</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="exception">An exception</param>
public static void Error<T>(this ILogger logger, Exception exception)
{
logger.Error(typeof(T), exception);
}
/// <summary>
/// Logs a warning message.
/// </summary>
@@ -44,7 +55,7 @@ namespace Umbraco.Core.Logging
}
/// <summary>
/// Logs a warning message.
/// Logs a warning message with a structured message template
/// </summary>
/// <typeparam name="T">The reporting type</typeparam>
/// <param name="logger">The logger.</param>
@@ -68,7 +79,7 @@ namespace Umbraco.Core.Logging
}
/// <summary>
/// Logs a warning message.
/// Logs a warning message with an exception with a structured message template
/// </summary>
/// <typeparam name="T">The reporting type</typeparam>
/// <param name="logger">The logger.</param>
@@ -92,7 +103,7 @@ namespace Umbraco.Core.Logging
}
/// <summary>
/// Logs a information message.
/// Logs a information message with a structured message template
/// </summary>
/// <typeparam name="T">The reporting type</typeparam>
/// <param name="logger">The logger.</param>
@@ -115,7 +126,7 @@ namespace Umbraco.Core.Logging
}
/// <summary>
/// Logs a debugging message.
/// Logs a debugging message with a structured message template
/// </summary>
/// <typeparam name="T">The reporting type</typeparam>
/// <param name="logger">The logger.</param>
@@ -138,7 +149,7 @@ namespace Umbraco.Core.Logging
}
/// <summary>
/// Logs a Verbose message.
/// Logs a Verbose message with a structured message template
/// </summary>
/// <typeparam name="T">The reporting type</typeparam>
/// <param name="logger">The logger.</param>
@@ -164,7 +175,7 @@ namespace Umbraco.Core.Logging
/// <summary>
/// Logs a fatal message.
/// Logs a fatal message with a structured message template
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>

View File

@@ -1,5 +1,4 @@
using System;
using System.Linq;
using Umbraco.Core.Logging;
namespace Umbraco.Tests.TestHelpers
@@ -12,6 +11,12 @@ namespace Umbraco.Tests.TestHelpers
Console.WriteLine(exception);
}
public void Error(Type reporting, Exception exception)
{
Console.WriteLine("ERROR {0}", reporting.Name);
Console.WriteLine(exception);
}
public void Error(Type reporting, Exception exception, string format, params object[] args)
{
Console.WriteLine("ERROR {0} - {1}", reporting.Name, string.Format(format, args));