
net.snowflake.common.util.GSCommonLogUtil Maven / Gradle / Ivy
/*
* Copyright (c) 2016 Snowflake Computing Inc. All right reserved.
*/
package net.snowflake.common.util;
import java.lang.reflect.InvocationTargetException;
/**
* Simple log utility for GSCommon.
*
* @author mkember
*/
public class GSCommonLogUtil
{
/**
* Creates a named logger based on a class name.
* @param klass a class.
* @return GSCommon logger instance.
*/
public static GenericGSCommonLogger getLogger(Class klass)
{
return getLogger(klass.getName());
}
/**
* Creates a named logger.
*
* Uses reflection to determine if we are in GS or Client. In GS, it uses the
* org.slf4j.Logger wrapper. In Client, it uses the java.util.logging.Logger
* wrapper instead.
* @param name a logger name.
* @return GSCommon logger instance.
*/
public static GenericGSCommonLogger getLogger(String name)
{
Class gsClass;
// Check if we are in GS.
try
{
gsClass = Class.forName("com.snowflake.util.Slf4jGSCommonLogger");
}
catch (ClassNotFoundException ex)
{
// We aren't in GS, so use the Java logger.
return new JavaGSCommonLogger(name);
}
// Create an SLF4J logger for GS logging.
try
{
Object instance = gsClass.getConstructor(String.class).newInstance(name);
return (GenericGSCommonLogger)instance;
}
catch (NoSuchMethodException | InstantiationException |
IllegalAccessException | InvocationTargetException ex)
{
throw new RuntimeException(
"Failed to instantiate Slf4jGSCommonLogger: " + ex);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy