diff options
author | PJ Fanning <fanningpj@apache.org> | 2020-12-17 19:59:01 +0000 |
---|---|---|
committer | PJ Fanning <fanningpj@apache.org> | 2020-12-17 19:59:01 +0000 |
commit | e1b0bc6e1db18aa9fe0314ee77559c116742f3cd (patch) | |
tree | 8d07c5e2a14b54538e996ca55994eb96cc056188 /src/java | |
parent | 71d6bf0306c5a3251016846f2920e101933380bb (diff) | |
download | poi-e1b0bc6e1db18aa9fe0314ee77559c116742f3cd.tar.gz poi-e1b0bc6e1db18aa9fe0314ee77559c116742f3cd.zip |
[github-207] add SLF4JLogger
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884568 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java')
-rw-r--r-- | src/java/org/apache/poi/util/SLF4JLogger.java | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/src/java/org/apache/poi/util/SLF4JLogger.java b/src/java/org/apache/poi/util/SLF4JLogger.java new file mode 100644 index 0000000000..236fc2cee6 --- /dev/null +++ b/src/java/org/apache/poi/util/SLF4JLogger.java @@ -0,0 +1,157 @@ +/* ==================================================================== + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. +==================================================================== */ +package org.apache.poi.util; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * An implementation of the {@link POILogger} using the + * SLF4J framework. Which itself can be configured to + * send log to various different log frameworks and even allows to create + * a small wrapper for custom log frameworks. + */ +public class SLF4JLogger implements POILogger +{ + private Logger log; + + @Override + public void initialize(final String cat) { + this.log = LoggerFactory.getLogger(cat); + } + + /** + * Log a message + * + * @param level One of DEBUG, INFO, WARN, ERROR, FATAL + * @param obj1 The object to log. + */ + @Override + public void _log(final int level, final Object obj1) { + switch (level) { + case FATAL: + case ERROR: + if (log.isErrorEnabled()) { + log.error(obj1.toString()); + } + break; + case WARN: + if (log.isWarnEnabled()) { + log.warn(obj1.toString()); + } + break; + case INFO: + if (log.isInfoEnabled()) { + log.info(obj1.toString()); + } + break; + case DEBUG: + if (log.isDebugEnabled()) { + log.debug(obj1.toString()); + } + break; + default: + if (log.isTraceEnabled()) { + log.trace(obj1.toString()); + } + break; + } + } + + /** + * Log a message + * + * @param level One of DEBUG, INFO, WARN, ERROR, FATAL + * @param obj1 The object to log. This is converted to a string. + * @param exception An exception to be logged + */ + @Override + public void _log(final int level, final Object obj1, final Throwable exception) { + switch (level) { + case FATAL: + case ERROR: + if (log.isErrorEnabled()) { + if (obj1 != null) { + log.error(obj1.toString(), exception); + } else { + log.error(exception.toString(), exception); + } + } + break; + case WARN: + if (log.isWarnEnabled()) { + if (obj1 != null) { + log.warn(obj1.toString(), exception); + } else { + log.warn(exception.toString(), exception); + } + } + break; + case INFO: + if (log.isInfoEnabled()) { + if (obj1 != null) { + log.info(obj1.toString(), exception); + } else { + log.info(exception.toString(), exception); + } + } + break; + case DEBUG: + if (log.isDebugEnabled()) { + if (obj1 != null) { + log.debug(obj1.toString(), exception); + } else { + log.debug(exception.toString(), exception); + } + } + break; + default: + if (log.isTraceEnabled()) { + if (obj1 != null) { + log.trace(obj1.toString(), exception); + } else { + log.trace(exception.toString(), exception); + } + } + break; + } + } + + /** + * Check if a logger is enabled to log at the specified level + * + * @param level One of DEBUG, INFO, WARN, ERROR, FATAL + */ + @Override + public boolean check(final int level) + { + switch (level) { + case FATAL: + case ERROR: + return log.isErrorEnabled(); + case WARN: + return log.isWarnEnabled(); + case INFO: + return log.isInfoEnabled(); + case DEBUG: + return log.isDebugEnabled(); + default: + return false; + } + } +} + |