All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.vngx.jsch.util.Logger Maven / Gradle / Ivy

Go to download

**vngx-jsch** (beta) is an updated version of the popular JSch SSH library written in pure Java. It has been updated to Java 6 with all the latest language features and improved code clarity.

The newest version!
/*
 * Copyright (c) 2010-2011 Michael Laudati, N1 Concepts LLC.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. The names of the authors may not be used to endorse or promote products
 * derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL N1
 * CONCEPTS LLC OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package org.vngx.jsch.util;

import java.util.Arrays;

/**
 * 

Interface for defining a simple logger for the SSH library to reduce any * external dependencies which would be required for logging libraries such as * log4j, slf4j, et al. Implementations of Logger can be used to * wrap an external logging framework to allow for logging integration.

* *

Two default implementations are provided in the interface: *

    *
  • SIMPLE_LOGGER - Logs all output to System.err
  • *
  • NULL_LOGGER - Empty logger to ignore output
  • *
*

* *

The Logger instance is set by calling * {@link org.vngx.jsch.JSch#setLogger(org.vngx.jsch.util.Logger)}

* * @see org.vngx.jsch.JSch * * @author Michael Laudati */ public interface Logger { /** Enum constants for logging levels. */ enum Level { /** Debug level for logging. */ DEBUG, /** Info level for logging. */ INFO, /** Warn level for logging. */ WARN, /** Error level for logging. */ ERROR, /** Fatal level for logging. */ FATAL } /** * Returns true if the specified logging Level is enabled. * * @param level to check * @return true if logging level is enabled */ boolean isEnabled(Level level); /** * Logs the specified message at the specified logging level. * * @param level to log * @param message to log */ void log(Level level, String message); /** * Logs the specified message and arguments at the specified level. * * @param level * @param message * @param args */ void log(Level level, String message, Object... args); /** * Logs the specified message and exception at the specified level. * * @param level * @param message * @param exception */ void log(Level level, String message, Throwable exception); /** * Simple implementation of Logger interface which logs all * output to the System.err stream. */ Logger SIMPLE_LOGGER = new Logger() { @Override public boolean isEnabled(Level level) { return true; } @Override public void log(Level level, String message) { System.err.println(message); } @Override public void log(Level level, String message, Object... args) { System.err.print(message); if( args != null ) { System.err.print(": "); System.err.println(Arrays.asList(args)); } } @Override public void log(Level level, String message, Throwable exception) { System.err.println(message+": "+exception); if( exception != null ) { exception.printStackTrace(System.err); } } }; /** * Null implementation of Logger which ignores all logging * output. */ Logger NULL_LOGGER = new Logger() { @Override public boolean isEnabled(Level level) { return false; } @Override public void log(Level level, String message) { } @Override public void log(Level level, String message, Object... args) { } @Override public void log(Level level, String message, Throwable exception) { } }; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy