summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenId/Loggers/Log4NetLogger.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenId/Loggers/Log4NetLogger.cs')
-rw-r--r--src/DotNetOpenId/Loggers/Log4NetLogger.cs207
1 files changed, 207 insertions, 0 deletions
diff --git a/src/DotNetOpenId/Loggers/Log4NetLogger.cs b/src/DotNetOpenId/Loggers/Log4NetLogger.cs
new file mode 100644
index 0000000..6d9a120
--- /dev/null
+++ b/src/DotNetOpenId/Loggers/Log4NetLogger.cs
@@ -0,0 +1,207 @@
+using System;
+using System.Globalization;
+using System.IO;
+using System.Reflection;
+
+namespace DotNetOpenId.Loggers {
+ class Log4NetLogger : ILog {
+ private log4net.ILog log4netLogger;
+
+ private Log4NetLogger(log4net.ILog logger) {
+ log4netLogger = logger;
+ }
+
+ /// <summary>
+ /// Returns a new log4net logger if it exists, or returns null if the assembly cannot be found.
+ /// </summary>
+ internal static ILog Initialize() {
+ return isLog4NetPresent ? createLogger() : null;
+ }
+
+ static bool isLog4NetPresent {
+ get {
+ try {
+ Assembly.Load("log4net");
+ return true;
+ } catch (FileNotFoundException) {
+ return false;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Creates the log4net.LogManager. Call ONLY once log4net.dll is known to be present.
+ /// </summary>
+ static ILog createLogger() {
+ try {
+ return new Log4NetLogger(log4net.LogManager.GetLogger("DotNetOpenId"));
+ } catch (FileLoadException) { // wrong log4net.dll version
+ return null;
+ }
+ }
+
+ #region ILog Members
+
+ public void Debug(object message) {
+ log4netLogger.Debug(message);
+ }
+
+ public void Debug(object message, Exception exception) {
+ log4netLogger.Debug(message, exception);
+ }
+
+ public void DebugFormat(string format, params object[] args) {
+ log4netLogger.DebugFormat(CultureInfo.InvariantCulture, format, args);
+ }
+
+ public void DebugFormat(string format, object arg0) {
+ log4netLogger.DebugFormat(format, arg0);
+ }
+
+ public void DebugFormat(string format, object arg0, object arg1) {
+ log4netLogger.DebugFormat(format, arg0, arg1);
+ }
+
+ public void DebugFormat(string format, object arg0, object arg1, object arg2) {
+ log4netLogger.DebugFormat(format, arg0, arg1, arg2);
+ }
+
+ public void DebugFormat(IFormatProvider provider, string format, params object[] args) {
+ log4netLogger.DebugFormat(provider, format, args);
+ }
+
+ public void Info(object message) {
+ log4netLogger.Info(message);
+ }
+
+ public void Info(object message, Exception exception) {
+ log4netLogger.Info(message, exception);
+ }
+
+ public void InfoFormat(string format, params object[] args) {
+ log4netLogger.InfoFormat(CultureInfo.InvariantCulture, format, args);
+ }
+
+ public void InfoFormat(string format, object arg0) {
+ log4netLogger.InfoFormat(format, arg0);
+ }
+
+ public void InfoFormat(string format, object arg0, object arg1) {
+ log4netLogger.InfoFormat(format, arg0, arg1);
+ }
+
+ public void InfoFormat(string format, object arg0, object arg1, object arg2) {
+ log4netLogger.InfoFormat(format, arg0, arg1, arg2);
+ }
+
+ public void InfoFormat(IFormatProvider provider, string format, params object[] args) {
+ log4netLogger.InfoFormat(provider, format, args);
+ }
+
+ public void Warn(object message) {
+ log4netLogger.Warn(message);
+ }
+
+ public void Warn(object message, Exception exception) {
+ log4netLogger.Warn(message, exception);
+ }
+
+ public void WarnFormat(string format, params object[] args) {
+ log4netLogger.WarnFormat(CultureInfo.InvariantCulture, format, args);
+ }
+
+ public void WarnFormat(string format, object arg0) {
+ log4netLogger.WarnFormat(format, arg0);
+ }
+
+ public void WarnFormat(string format, object arg0, object arg1) {
+ log4netLogger.WarnFormat(format, arg0, arg1);
+ }
+
+ public void WarnFormat(string format, object arg0, object arg1, object arg2) {
+ log4netLogger.WarnFormat(format, arg0, arg1, arg2);
+ }
+
+ public void WarnFormat(IFormatProvider provider, string format, params object[] args) {
+ log4netLogger.WarnFormat(provider, format, args);
+ }
+
+ public void Error(object message) {
+ log4netLogger.Error(message);
+ }
+
+ public void Error(object message, Exception exception) {
+ log4netLogger.Error(message, exception);
+ }
+
+ public void ErrorFormat(string format, params object[] args) {
+ log4netLogger.ErrorFormat(CultureInfo.InvariantCulture, format, args);
+ }
+
+ public void ErrorFormat(string format, object arg0) {
+ log4netLogger.ErrorFormat(format, arg0);
+ }
+
+ public void ErrorFormat(string format, object arg0, object arg1) {
+ log4netLogger.ErrorFormat(format, arg0, arg1);
+ }
+
+ public void ErrorFormat(string format, object arg0, object arg1, object arg2) {
+ log4netLogger.ErrorFormat(format, arg0, arg1, arg2);
+ }
+
+ public void ErrorFormat(IFormatProvider provider, string format, params object[] args) {
+ log4netLogger.ErrorFormat(provider, format, args);
+ }
+
+ public void Fatal(object message) {
+ log4netLogger.Fatal(message);
+ }
+
+ public void Fatal(object message, Exception exception) {
+ log4netLogger.Fatal(message, exception);
+ }
+
+ public void FatalFormat(string format, params object[] args) {
+ log4netLogger.FatalFormat(CultureInfo.InvariantCulture, format, args);
+ }
+
+ public void FatalFormat(string format, object arg0) {
+ log4netLogger.FatalFormat(format, arg0);
+ }
+
+ public void FatalFormat(string format, object arg0, object arg1) {
+ log4netLogger.FatalFormat(format, arg0, arg1);
+ }
+
+ public void FatalFormat(string format, object arg0, object arg1, object arg2) {
+ log4netLogger.FatalFormat(format, arg0, arg1, arg2);
+ }
+
+ public void FatalFormat(IFormatProvider provider, string format, params object[] args) {
+ log4netLogger.FatalFormat(provider, format, args);
+ }
+
+ public bool IsDebugEnabled {
+ get { return log4netLogger.IsDebugEnabled; }
+ }
+
+ public bool IsInfoEnabled {
+ get { return log4netLogger.IsInfoEnabled; }
+ }
+
+ public bool IsWarnEnabled {
+ get { return log4netLogger.IsWarnEnabled; }
+ }
+
+ public bool IsErrorEnabled {
+ get { return log4netLogger.IsErrorEnabled; }
+ }
+
+ public bool IsFatalEnabled {
+ get { return log4netLogger.IsFatalEnabled; }
+ }
+
+ #endregion
+ }
+}