-using System;
-using System.Diagnostics;
-using System.Text;
-using System.Threading.Tasks;
-using log4net;
-using log4net.Core;
-
-namespace Pithos.Client.WPF.Diagnostics
-{
- public class Log4NetForwarder : TraceListener
- {
- public override void Write(string message)
- {
- WriteLine(message);
- }
-
- public override void Write(object o)
- {
- WriteLine(o);
- }
-
- public override void Write(object o, string category)
- {
- WriteLine(o, category);
- }
-
- public override void Write(string message, string category)
- {
- WriteLine(message, category);
- }
-
- public override void WriteLine(string message)
- {
- Log(message, Level.Debug);
- }
-
-
- public override void WriteLine(object o)
- {
- Log(o.ToString(), Level.Debug);
- }
-
- public override void WriteLine(object o, string category)
- {
- using (ThreadContext.Stacks["Category"].Push(category))
- {
- Log(o.ToString(), Level.Debug);
- }
- }
-
- public override void WriteLine(string message, string category)
- {
- using (ThreadContext.Stacks["Category"].Push(category))
- {
- Log(message, Level.Debug);
- }
- }
-
- public override void Fail(string message)
- {
- Log(message, Level.Error);
- }
-
- public override void Fail(string message, string detailMessage)
- {
- Log(String.Format("{0} {1}", message, detailMessage), Level.Error);
- }
-
-
-
- public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id)
- {
- var message = String.Format("Event ID: [{0}]", id);
- Log(source, eventType, message);
- }
-
- public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args)
- {
- var builder = new StringBuilder();
- builder.AppendFormat("Event ID: [{0}] ", id);
- builder.AppendFormat(format, args);
- var message = builder.ToString();
-
- Log(source, eventType, message);
- }
-
- public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message)
- {
- Log(source, eventType, message);
- }
-
- private void Log(string source, TraceEventType eventType, string message)
- {
- try
- {
- var log = LogManager.GetLogger(source);
- var level = GetLevel(eventType);
- TaskEx.Run(()=>log.Logger.Log(GetType(), level, message, null));
- }
- catch(Exception ex)
- {
-
- }
- }
-
- private void Log(string message, Level level)
- {
- try
- {
-
- var stack = new StackTrace();
- var type = stack.GetFrame(0).GetMethod().DeclaringType;
- var log = LogManager.GetLogger(type);
- log.Logger.Log(GetType(), level, message, null);
- }
- catch (Exception)
- {
- }
- }
-
-
- private static Level GetLevel(TraceEventType eventType)
- {
- var level = Level.Debug;
- switch (eventType)
- {
- case TraceEventType.Information:
- level = Level.Info;
- break;
- case TraceEventType.Verbose:
- level = Level.Verbose;
- break;
- case TraceEventType.Warning:
- level = Level.Info;
- break;
- case TraceEventType.Critical:
- level = Level.Info;
- break;
- case TraceEventType.Error:
- level = Level.Info;
- break;
- }
- return level;
- }
- }
-
-}
+using System;\r
+using System.Diagnostics;\r
+using System.Text;\r
+using System.Threading.Tasks;\r
+using log4net;\r
+using log4net.Core;\r
+\r
+namespace Pithos.Client.WPF.Diagnostics\r
+{\r
+ public class Log4NetForwarder : TraceListener\r
+ {\r
+ public override void Write(string message)\r
+ {\r
+ WriteLine(message);\r
+ }\r
+\r
+ public override void Write(object o)\r
+ {\r
+ WriteLine(o);\r
+ }\r
+\r
+ public override void Write(object o, string category)\r
+ {\r
+ WriteLine(o, category);\r
+ }\r
+\r
+ public override void Write(string message, string category)\r
+ {\r
+ WriteLine(message, category);\r
+ }\r
+\r
+ public override void WriteLine(string message)\r
+ {\r
+ Log(message, Level.Debug);\r
+ }\r
+\r
+\r
+ public override void WriteLine(object o)\r
+ {\r
+ Log(o.ToString(), Level.Debug);\r
+ }\r
+\r
+ public override void WriteLine(object o, string category)\r
+ {\r
+ using (ThreadContext.Stacks["Category"].Push(category))\r
+ {\r
+ Log(o.ToString(), Level.Debug);\r
+ }\r
+ }\r
+\r
+ public override void WriteLine(string message, string category)\r
+ {\r
+ using (ThreadContext.Stacks["Category"].Push(category))\r
+ {\r
+ Log(message, Level.Debug);\r
+ }\r
+ }\r
+\r
+ public override void Fail(string message)\r
+ {\r
+ Log(message, Level.Error);\r
+ }\r
+\r
+ public override void Fail(string message, string detailMessage)\r
+ {\r
+ Log(String.Format("{0} {1}", message, detailMessage), Level.Error);\r
+ }\r
+\r
+\r
+\r
+ public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id)\r
+ {\r
+ var message = String.Format("Event ID: [{0}]", id);\r
+ Log(source, eventType, message);\r
+ }\r
+\r
+ public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args)\r
+ {\r
+ var builder = new StringBuilder();\r
+ builder.AppendFormat("Event ID: [{0}] ", id);\r
+ builder.AppendFormat(format, args);\r
+ var message = builder.ToString();\r
+\r
+ Log(source, eventType, message);\r
+ }\r
+\r
+ public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message)\r
+ {\r
+ Log(source, eventType, message);\r
+ }\r
+\r
+ private void Log(string source, TraceEventType eventType, string message)\r
+ {\r
+ try\r
+ {\r
+ var log = LogManager.GetLogger(source);\r
+ var level = GetLevel(eventType);\r
+ TaskEx.Run(()=>log.Logger.Log(GetType(), level, message, null));\r
+ }\r
+ catch(Exception )\r
+ {\r
+ \r
+ }\r
+ }\r
+\r
+ private void Log(string message, Level level)\r
+ {\r
+ try\r
+ {\r
+\r
+ var stack = new StackTrace();\r
+ var type = stack.GetFrame(0).GetMethod().DeclaringType;\r
+ var log = LogManager.GetLogger(type);\r
+ log.Logger.Log(GetType(), level, message, null);\r
+ }\r
+ catch (Exception)\r
+ {\r
+ }\r
+ }\r
+\r
+\r
+ private static Level GetLevel(TraceEventType eventType)\r
+ {\r
+ var level = Level.Debug;\r
+ switch (eventType)\r
+ {\r
+ case TraceEventType.Information:\r
+ level = Level.Info;\r
+ break;\r
+ case TraceEventType.Verbose:\r
+ level = Level.Verbose;\r
+ break;\r
+ case TraceEventType.Warning:\r
+ level = Level.Info;\r
+ break;\r
+ case TraceEventType.Critical:\r
+ level = Level.Info;\r
+ break;\r
+ case TraceEventType.Error:\r
+ level = Level.Info;\r
+ break;\r
+ }\r
+ return level;\r
+ }\r
+ }\r
+\r
+}\r