org.nuxeo.launcher.info.MessageInfoLogger.java Source code

Java tutorial

Introduction

Here is the source code for org.nuxeo.launcher.info.MessageInfoLogger.java

Source

/*
 * (C) Copyright 2006-2015 Nuxeo SA (http://nuxeo.com/) and others.
 *
 * 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.
 *
 * Contributors:
 *     mguillaume
 */

package org.nuxeo.launcher.info;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.logging.impl.SimpleLog;

public class MessageInfoLogger {

    private List<MessageInfo> messages = new ArrayList<>();

    public List<MessageInfo> getMessages() {
        return messages;
    }

    public void printMessages() {
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
        for (MessageInfo message : messages) {
            System.out
                    .println("[" + dateFormat.format(message.time) + "] " + message.level + " " + message.message);
        }
    }

    public void log(String msg, int level) {
        MessageInfo message = new MessageInfo();
        message.time = new Date();
        message.level = level;
        message.message = msg;
        messages.add(message);
    }

    public void debug(Object... args) {
        for (Object arg : args) {
            if (arg instanceof String) {
                debug((String) arg);
            } else if (arg instanceof Throwable) {
                Writer stringWriter = new StringWriter();
                PrintWriter stackWriter = new PrintWriter(stringWriter);
                ((Throwable) arg).printStackTrace(stackWriter);
                debug(stringWriter.toString());
            } else {
                debug(arg.toString());
            }
        }
    }

    public void debug(String msg) {
        log(msg, SimpleLog.LOG_LEVEL_DEBUG);
    }

    public void info(Object... args) {
        for (Object arg : args) {
            if (arg instanceof String) {
                info((String) arg);
            } else if (arg instanceof Throwable) {
                Writer stringWriter = new StringWriter();
                PrintWriter stackWriter = new PrintWriter(stringWriter);
                ((Throwable) arg).printStackTrace(stackWriter);
                info(stringWriter.toString());
            } else {
                info(arg.toString());
            }
        }
    }

    public void info(String msg) {
        log(msg, SimpleLog.LOG_LEVEL_INFO);
    }

    public void warn(Object... args) {
        for (Object arg : args) {
            if (arg instanceof String) {
                warn((String) arg);
            } else if (arg instanceof Throwable) {
                Writer stringWriter = new StringWriter();
                PrintWriter stackWriter = new PrintWriter(stringWriter);
                ((Throwable) arg).printStackTrace(stackWriter);
                warn(stringWriter.toString());
            } else {
                warn(arg.toString());
            }
        }
    }

    public void warn(String msg) {
        log(msg, SimpleLog.LOG_LEVEL_WARN);
    }

    public void error(Object... args) {
        for (Object arg : args) {
            if (arg instanceof String) {
                error((String) arg);
            } else if (arg instanceof Throwable) {
                Writer stringWriter = new StringWriter();
                PrintWriter stackWriter = new PrintWriter(stringWriter);
                ((Throwable) arg).printStackTrace(stackWriter);
                error(stringWriter.toString());
            } else {
                error(arg.toString());
            }
        }
    }

    public void error(String msg) {
        log(msg, SimpleLog.LOG_LEVEL_ERROR);
    }

}