using Serilog;
using System;
using TINK.Model.Repository.Exception;
namespace TINK.Model.Logging
{
public static class LogEntryClassifyHelper
{
/// Classifies exception and logs information or error depending on result of classification.
/// Type of first message parameter.
/// Type of second message parameter.
/// Object to use for logging.
/// Templated used to output message.
/// First message parameter.
/// Second message parameter.
/// Exception to classify.
public static void InformationOrError(this ILogger p_oLogger, string messageTemplate, T0 propertyValue0, T1 propertyValue1, Exception p_oException)
{
if (p_oException == null)
{
p_oLogger.Error(messageTemplate, propertyValue0, propertyValue1, string.Empty);
return;
}
if (p_oException.GetIsConnectFailureException())
{
// Expected exception (LAN or mobile data off/ not reachable, proxy, ...)
p_oLogger.Information(messageTemplate, propertyValue0, propertyValue1, p_oException);
return;
}
p_oLogger.Error(messageTemplate, propertyValue0, propertyValue1, p_oException);
}
}
}