root/TwitterIrcGateway/trunk/TwitterIrcGatewayCore/IrcTraceListener.cs

Revision 406, 1.7 kB (checked in by tomoyo, 4 months ago)

* TypableMap? で指定できる fav/unfav/re コマンドをつけた
* Status の XML の項目を拡張
* Process フィルターを追加

  • Property svn:keywords set to Id
Line 
1using System;
2using System.Collections.Generic;
3using System.Text;
4using System.Diagnostics;
5using Misuzilla.Net.Irc;
6using System.Threading;
7
8namespace Misuzilla.Applications.TwitterIrcGateway
9{
10    class IrcTraceListener : TraceListener
11    {
12        private Session _session;
13        public IrcTraceListener(Session session)
14        {
15            _session = session;
16            if (_session.TcpClient.Connected)
17            {
18                PrivMsgMessage msg = new PrivMsgMessage("$ServerTraceLog", String.Format("(0x{0}) {1}", Thread.CurrentThread.ManagedThreadId.ToString("x"), "IrcTraceListener enabled."));
19                msg.SenderNick = "trace";
20                msg.SenderHost = "trace@" + Server.ServerName;
21                msg.Receiver = _session.Nick;
22                _session.Send(msg);
23            }
24        }
25        public override void Write(string message)
26        {
27            this.WriteLine(message);
28        }
29
30        public override void WriteLine(string message)
31        {
32            if (_session.TcpClient.Connected)
33            {
34                StringBuilder sb = new StringBuilder();
35                sb.AppendFormat("(0x{0}) ", Thread.CurrentThread.ManagedThreadId.ToString("x"));
36                sb.Append(' ', this.IndentLevel * this.IndentSize);
37
38                foreach (String line in message.Split('\n'))
39                {
40
41                    NoticeMessage msg = new NoticeMessage("$ServerTraceLog", sb.ToString() + line);
42                    msg.Sender = "trace!trace@internal";
43                    msg.Receiver = _session.Nick;
44                    _session.Send(msg);
45                }
46            }
47        }
48    }
49}
Note: See TracBrowser for help on using the browser.