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

net.snowflake.client.log.SFLoggerFactory Maven / Gradle / Ivy

There is a newer version: 3.18.0
Show newest version
/*
 * Copyright (c) 2012-2019 Snowflake Computing Inc. All rights reserved.
 */
package net.snowflake.client.log;

import static net.snowflake.client.jdbc.SnowflakeUtil.systemGetProperty;

/**
 * Used to create SFLogger instance
 * 

* Created by hyu on 11/17/16. */ public class SFLoggerFactory { private static LoggerImpl loggerImplementation; enum LoggerImpl { SLF4JLOGGER("net.snowflake.client.log.SLF4JLogger"), JDK14LOGGER("net.snowflake.client.log.JDK14Logger"); private String loggerImplClassName; LoggerImpl(String loggerClass) { this.loggerImplClassName = loggerClass; } public String getLoggerImplClassName() { return this.loggerImplClassName; } public static LoggerImpl fromString(String loggerImplClassName) { if (loggerImplClassName != null) { for (LoggerImpl imp : LoggerImpl.values()) { if (loggerImplClassName.equalsIgnoreCase( imp.getLoggerImplClassName())) { return imp; } } } return null; } } /** * @param clazz Class type that the logger is instantiated * @return An SFLogger instance given the name of the class */ public static SFLogger getLogger(Class clazz) { // only need to determine the logger implementation only once if (loggerImplementation == null) { String logger = systemGetProperty("net.snowflake.jdbc.loggerImpl"); loggerImplementation = LoggerImpl.fromString(logger); if (loggerImplementation == null) { // default to use java util logging loggerImplementation = LoggerImpl.JDK14LOGGER; } } switch (loggerImplementation) { case SLF4JLOGGER: return new SLF4JLogger(clazz); case JDK14LOGGER: default: return new JDK14Logger(clazz.getName()); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy