summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Core/Loggers/NLogLogger.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.Core/Loggers/NLogLogger.cs')
-rw-r--r--src/DotNetOpenAuth.Core/Loggers/NLogLogger.cs222
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));
+ }
+ }
+}