001/* Copyright (C) 2013 TU Dortmund
002 * This file is part of LearnLib, http://www.learnlib.de/.
003 * 
004 * LearnLib is free software; you can redistribute it and/or
005 * modify it under the terms of the GNU Lesser General Public
006 * License version 3.0 as published by the Free Software Foundation.
007 * 
008 * LearnLib is distributed in the hope that it will be useful,
009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
011 * Lesser General Public License for more details.
012 * 
013 * You should have received a copy of the GNU Lesser General Public
014 * License along with LearnLib; if not, see
015 * <http://www.gnu.de/documents/lgpl.en.html>.
016 */
017
018package de.learnlib.logging;
019
020import java.util.logging.LogRecord;
021import java.util.logging.SimpleFormatter;
022
023/**
024 * Extends SimpleFormatter to include categories in output.
025 * 
026 * @author falkhowar
027 */
028public class LLConsoleFormatter extends SimpleFormatter {
029        
030    protected LLConsoleFormatter() {
031    }
032
033    @Override
034    public String format(LogRecord record) {
035        String formatted = super.format(record);
036        String category = "SYSTEM";
037        if (record.getClass().getName().equals(LearnLogRecord.class.getName())) {
038            LearnLogRecord lrec = (LearnLogRecord)record;
039            category = lrec.getCategory().toString();
040        }
041        formatted = formatted.replaceFirst( record.getLevel().getName() + ":", 
042            record.getLevel().getName() + " [" + category + "]:");                    
043        return formatted;
044    }
045}