/** * 添加日志服务 * * @param appender */ public void addAppender(BaseAppender appender) { lock (m_appenders) { m_appenders.put(appender.m_id, appender); addAppenderThread(appender); } }
/** * 移除日志服务 * * @param appender */ public void removeAppender(BaseAppender appender) { lock (m_appenders) { m_appenders.remove(appender.m_id); removeAppenderThread(appender); } }
/** * 移除AppenderThread * * @param appender */ private void removeAppenderThread(BaseAppender appender) { m_dataInfos.remove(appender.m_id); try { Thread t = m_threads.get(appender.m_id); t.Abort(); t = null; m_threads.remove(appender.m_id); } catch (Exception e) { } }
/** * 添加AppenderThread * * @param appender */ private void addAppenderThread(BaseAppender appender) { m_dataInfos.put(appender.m_id, new ArrayList <LogWorkDataInfo>()); Object[] parameters = new Object[2]; parameters[0] = this; parameters[1] = appender.m_id; OnWork onWork = new OnWork(appender.m_id, m_messages, m_dataInfos, m_stopDatas); Thread thread = new Thread(new ThreadStart(onWork.run)); thread.Start(); m_threads.put(appender.m_id, thread); }