Package io.vertx.core.logging.impl

Source Code of io.vertx.core.logging.impl.SLF4JLogDelegate

/*
* Copyright (c) 2009 Red Hat, Inc.
* -------------------------------------
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
*
*     The Eclipse Public License is available at
*     http://www.eclipse.org/legal/epl-v10.html
*
*     The Apache License v2.0 is available at
*     http://www.opensource.org/licenses/apache2.0.php
*
* You may elect to redistribute this code under either of these licenses.
*/

package io.vertx.core.logging.impl;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.spi.LocationAwareLogger;

import static org.slf4j.spi.LocationAwareLogger.*;

/**
* @author <a href="http://tfox.org">Tim Fox</a>
*/
public class SLF4JLogDelegate implements LogDelegate{
  private static final String FQCN = io.vertx.core.logging.Logger.class.getCanonicalName();

  private final Logger logger;

  SLF4JLogDelegate(final String name) {
    logger = LoggerFactory.getLogger(name);
  }

  public boolean isInfoEnabled() {
    return logger.isInfoEnabled();
  }

  public boolean isDebugEnabled() {
    return logger.isDebugEnabled();
  }

  public boolean isTraceEnabled() {
    return logger.isTraceEnabled();
  }

  public void fatal(final Object message) {
    log(ERROR_INT, message);
  }

  public void fatal(final Object message, final Throwable t) {
    log(ERROR_INT, message, t);
  }

  public void error(final Object message) {
    log(ERROR_INT, message);
  }

  public void error(final Object message, final Throwable t) {
    log(ERROR_INT, message, t);
  }

  public void warn(final Object message) {
    log(WARN_INT, message);
  }

  public void warn(final Object message, final Throwable t) {
    log(WARN_INT, message, t);
  }

  public void info(final Object message) {
    log(INFO_INT, message);
  }

  public void info(final Object message, final Throwable t) {
    log(INFO_INT, message, t);
  }

  public void debug(final Object message) {
    log(DEBUG_INT, message);
  }

  public void debug(final Object message, final Throwable t) {
    log(DEBUG_INT, message, t);
  }

  public void trace(final Object message) {
    log(TRACE_INT, message);
  }

  public void trace(final Object message, final Throwable t) {
    log(TRACE_INT, message, t);
  }

  private void log(int level, Object message) {
    log(level, message, null);
  }

  private void log(int level, Object message, Throwable t) {
    String msg = (message == null) ? "NULL" : message.toString();

    if (logger instanceof LocationAwareLogger) {
      LocationAwareLogger l = (LocationAwareLogger) logger;
      l.log(null, FQCN, level, msg, null, t);
    } else {
      switch (level) {
        case TRACE_INT:
          logger.trace(msg, t);
          break;
        case DEBUG_INT:
          logger.debug(msg, t);
          break;
        case INFO_INT:
          logger.info(msg, t);
          break;
        case WARN_INT:
          logger.warn(msg, t);
          break;
        case ERROR_INT:
          logger.error(msg, t);
          break;
        default:
          throw new IllegalArgumentException("Unknown log level " + level);
      }
    }
  }
}
TOP

Related Classes of io.vertx.core.logging.impl.SLF4JLogDelegate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.