diff options
Diffstat (limited to 'src/DotNetOpenAuth.Core/Loggers/NLogLogger.cs')
-rw-r--r-- | src/DotNetOpenAuth.Core/Loggers/NLogLogger.cs | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.Core/Loggers/NLogLogger.cs b/src/DotNetOpenAuth.Core/Loggers/NLogLogger.cs new file mode 100644 index 0000000..b5d883d --- /dev/null +++ b/src/DotNetOpenAuth.Core/Loggers/NLogLogger.cs @@ -0,0 +1,222 @@ +// <auto-generated /> + +namespace DotNetOpenAuth.Loggers { + using System; + using System.Globalization; + using System.IO; + using System.Reflection; + + internal class NLogLogger : ILog { + private NLog.Logger nLogLogger; + + private NLogLogger(NLog.Logger logger) { + this.nLogLogger = logger; + } + + #region ILog Members + + public bool IsDebugEnabled { + get { return this.nLogLogger.IsDebugEnabled; } + } + + public bool IsInfoEnabled { + get { return this.nLogLogger.IsInfoEnabled; } + } + + public bool IsWarnEnabled { + get { return this.nLogLogger.IsWarnEnabled; } + } + + public bool IsErrorEnabled { + get { return this.nLogLogger.IsErrorEnabled; } + } + + public bool IsFatalEnabled { + get { return this.nLogLogger.IsFatalEnabled; } + } + + #endregion + + private static bool IsNLogPresent { + get { + try { + Assembly.Load("NLog"); + return true; + } catch (FileNotFoundException) { + return false; + } + } + } + + #region ILog methods + + public void Debug(object message) { + this.nLogLogger.Debug(message); + } + + public void Debug(object message, Exception exception) { + this.nLogLogger.DebugException(String.Format("{0}", message), exception); + } + + public void DebugFormat(string format, params object[] args) { + this.nLogLogger.Debug(CultureInfo.InvariantCulture, format, args); + } + + public void DebugFormat(string format, object arg0) { + this.nLogLogger.Debug(format, arg0); + } + + public void DebugFormat(string format, object arg0, object arg1) { + this.nLogLogger.Debug(format, arg0, arg1); + } + + public void DebugFormat(string format, object arg0, object arg1, object arg2) { + this.nLogLogger.Debug(format, arg0, arg1, arg2); + } + + public void DebugFormat(IFormatProvider provider, string format, params object[] args) { + this.nLogLogger.Debug(provider, format, args); + } + + public void Info(object message) { + this.nLogLogger.Info(message); + } + + public void Info(object message, Exception exception) { + this.nLogLogger.InfoException(String.Format("{0}", message), exception); + } + + public void InfoFormat(string format, params object[] args) { + this.nLogLogger.Info(CultureInfo.InvariantCulture, format, args); + } + + public void InfoFormat(string format, object arg0) { + this.nLogLogger.Info(format, arg0); + } + + public void InfoFormat(string format, object arg0, object arg1) { + this.nLogLogger.Info(format, arg0, arg1); + } + + public void InfoFormat(string format, object arg0, object arg1, object arg2) { + this.nLogLogger.Info(format, arg0, arg1, arg2); + } + + public void InfoFormat(IFormatProvider provider, string format, params object[] args) { + this.nLogLogger.Info(provider, format, args); + } + + public void Warn(object message) { + this.nLogLogger.Warn(message); + } + + public void Warn(object message, Exception exception) { + this.nLogLogger.Warn(String.Format("{0}", message), exception); + } + + public void WarnFormat(string format, params object[] args) { + this.nLogLogger.Warn(CultureInfo.InvariantCulture, format, args); + } + + public void WarnFormat(string format, object arg0) { + this.nLogLogger.Warn(format, arg0); + } + + public void WarnFormat(string format, object arg0, object arg1) { + this.nLogLogger.Warn(format, arg0, arg1); + } + + public void WarnFormat(string format, object arg0, object arg1, object arg2) { + this.nLogLogger.Warn(format, arg0, arg1, arg2); + } + + public void WarnFormat(IFormatProvider provider, string format, params object[] args) { + this.nLogLogger.Warn(provider, format, args); + } + + public void Error(object message) { + this.nLogLogger.Error(message); + } + + public void Error(object message, Exception exception) { + this.nLogLogger.Error(String.Format("{0}", message), exception); + } + + public void ErrorFormat(string format, params object[] args) { + this.nLogLogger.Error(CultureInfo.InvariantCulture, format, args); + } + + public void ErrorFormat(string format, object arg0) { + this.nLogLogger.Error(format, arg0); + } + + public void ErrorFormat(string format, object arg0, object arg1) { + this.nLogLogger.Error(format, arg0, arg1); + } + + public void ErrorFormat(string format, object arg0, object arg1, object arg2) { + this.nLogLogger.Error(format, arg0, arg1, arg2); + } + + public void ErrorFormat(IFormatProvider provider, string format, params object[] args) { + this.nLogLogger.Error(provider, format, args); + } + + public void Fatal(object message) { + this.nLogLogger.Fatal(message); + } + + public void Fatal(object message, Exception exception) { + this.nLogLogger.Fatal(String.Format("{0}", message), exception); + } + + public void FatalFormat(string format, params object[] args) { + this.nLogLogger.Fatal(CultureInfo.InvariantCulture, format, args); + } + + public void FatalFormat(string format, object arg0) { + this.nLogLogger.Fatal(format, arg0); + } + + public void FatalFormat(string format, object arg0, object arg1) { + this.nLogLogger.Fatal(format, arg0, arg1); + } + + public void FatalFormat(string format, object arg0, object arg1, object arg2) { + this.nLogLogger.Fatal(format, arg0, arg1, arg2); + } + + public void FatalFormat(IFormatProvider provider, string format, params object[] args) { + this.nLogLogger.Fatal(provider, format, args); + } + + #endregion + + /// <summary> + /// Returns a new NLog logger if it exists, or returns null if the assembly cannot be found. + /// </summary> + /// <returns>The created <see cref="ILog"/> instance.</returns> + internal static ILog Initialize(string name) { + try { + return IsNLogPresent ? CreateLogger(name) : null; + } catch (FileLoadException) { + // wrong NLog.dll version + return null; + } catch (TargetInvocationException) { + // Thrown due to some security issues on .NET 4.5. + return null; + } catch (TypeLoadException) { + // Thrown by mono (http://stackoverflow.com/questions/10805773/error-when-pushing-dotnetopenauth-to-staging-or-production-environment) + return null; + } + } + + /// <summary> + /// Creates the NLogLogger. Call ONLY after NLog.dll is known to be present. + /// </summary> + /// <returns>The created <see cref="ILog"/> instance.</returns> + private static ILog CreateLogger(string name) { + return new NLogLogger(NLog.LogManager.GetLogger(name)); + } + } +} |