/* * Copyright 1999-2011 Alibaba Group. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.alibaba.dubbo.common.utils; import java.util.ArrayList; import java.util.List; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.spi.LoggingEvent; public class DubboAppender extends ConsoleAppender { public static boolean available = false; public static List<Log> logList = new ArrayList<Log>(); public static void doStart() { available = true; } public static void doStop() { available = false; } public static void clear() { logList.clear(); } public void append(LoggingEvent event) { super.append(event); if (available == true) { Log temp = parseLog(event); logList.add(temp); } } private Log parseLog(LoggingEvent event) { Log log = new Log(); log.setLogName(event.getLogger().getName()); log.setLogLevel(event.getLevel()); log.setLogThread(event.getThreadName()); log.setLogMessage(event.getMessage().toString()); return log; } }