corrade-vassal – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | vero | 1 | using System; |
2 | using log4net; |
||
3 | using log4net.Appender; |
||
4 | using log4net.Core; |
||
5 | using log4net.Config; |
||
6 | using log4net.Layout; |
||
7 | |||
8 | namespace GridProxyGUI |
||
9 | { |
||
10 | public class ProxyLogger : AppenderSkeleton |
||
11 | { |
||
12 | public delegate void Log(object sender, LogEventArgs e); |
||
13 | public static event Log OnLogLine; |
||
14 | |||
15 | public static void Init() |
||
16 | { |
||
17 | var appender = new ProxyLogger(); |
||
18 | appender.Layout = new PatternLayout("%timestamp %-5level %message%newline"); |
||
19 | // appender.AddFilter(new log4net.Filter.LoggerMatchFilter() { LoggerToMatch = "OpenMetaverse" }); |
||
20 | BasicConfigurator.Configure(appender); |
||
21 | } |
||
22 | |||
23 | protected override void Append(LoggingEvent le) |
||
24 | { |
||
25 | if (OnLogLine != null && le.Level != Level.Debug) |
||
26 | { |
||
27 | OnLogLine(this, new LogEventArgs(string.Format("{0} [{1}] {2}\n", le.TimeStamp, le.Level, le.MessageObject))); |
||
28 | } |
||
29 | } |
||
30 | } |
||
31 | |||
32 | public class LogEventArgs : EventArgs |
||
33 | { |
||
34 | public string Message { get; set; } |
||
35 | |||
36 | public LogEventArgs(string msg) |
||
37 | { |
||
38 | this.Message = msg; |
||
39 | } |
||
40 | } |
||
41 | } |
||
42 |