ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/juli/logging/DirectJDKLog.java

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/juli/logging/DirectJDKLog.java
Status
scanned
Type
file
Name
DirectJDKLog.java
Extension
.java
Programming language
Java
Mime type
text/plain
File type
ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
5940 (5.8 KB)
MD5
c631b7aa8221cd7290e8aa17af019dca
SHA1
b3460170b318312b37c03907cde43c2177882a2e
SHA256
71b8c9cbe53c00784d73ec48162f69fc0c44f6e3be072c233c3558f78782797e
SHA512

      
    
SHA1_git
6b1d1bbcbb4f24cb9892a486740c61028dce0394
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
DirectJDKLog.java | 5.8 KB |

/* * 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.juli.logging; import java.util.logging.ConsoleHandler; import java.util.logging.Formatter; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.Logger; /** * Hard-coded java.util.logging commons-logging implementation. */ class DirectJDKLog implements Log { // no reason to hide this - but good reasons to not hide public final Logger logger; // Alternate config reader and console format private static final String SIMPLE_FMT = "java.util.logging.SimpleFormatter"; private static final String FORMATTER = "org.apache.juli.formatter"; static { if (System.getProperty("java.util.logging.config.class") == null && System.getProperty("java.util.logging.config.file") == null) { // default configuration - it sucks. Let's override at least the // formatter for the console try { Formatter fmt = (Formatter) Class.forName(System.getProperty(FORMATTER, SIMPLE_FMT)).getConstructor() .newInstance(); // it is also possible that the user modified jre/lib/logging.properties - // but that's really stupid in most cases Logger root = Logger.getLogger(""); for (Handler handler : root.getHandlers()) { // I only care about console - that's what's used in default config anyway if (handler instanceof ConsoleHandler) { handler.setFormatter(fmt); } } } catch (Throwable t) { // maybe it wasn't included - the ugly default will be used. } } } DirectJDKLog(String name) { logger = Logger.getLogger(name); } @Override public final boolean isErrorEnabled() { return logger.isLoggable(Level.SEVERE); } @Override public final boolean isWarnEnabled() { return logger.isLoggable(Level.WARNING); } @Override public final boolean isInfoEnabled() { return logger.isLoggable(Level.INFO); } @Override public final boolean isDebugEnabled() { return logger.isLoggable(Level.FINE); } @Override public final boolean isFatalEnabled() { return logger.isLoggable(Level.SEVERE); } @Override public final boolean isTraceEnabled() { return logger.isLoggable(Level.FINER); } @Override public final void debug(Object message) { log(Level.FINE, String.valueOf(message), null); } @Override public final void debug(Object message, Throwable t) { log(Level.FINE, String.valueOf(message), t); } @Override public final void trace(Object message) { log(Level.FINER, String.valueOf(message), null); } @Override public final void trace(Object message, Throwable t) { log(Level.FINER, String.valueOf(message), t); } @Override public final void info(Object message) { log(Level.INFO, String.valueOf(message), null); } @Override public final void info(Object message, Throwable t) { log(Level.INFO, String.valueOf(message), t); } @Override public final void warn(Object message) { log(Level.WARNING, String.valueOf(message), null); } @Override public final void warn(Object message, Throwable t) { log(Level.WARNING, String.valueOf(message), t); } @Override public final void error(Object message) { log(Level.SEVERE, String.valueOf(message), null); } @Override public final void error(Object message, Throwable t) { log(Level.SEVERE, String.valueOf(message), t); } @Override public final void fatal(Object message) { log(Level.SEVERE, String.valueOf(message), null); } @Override public final void fatal(Object message, Throwable t) { log(Level.SEVERE, String.valueOf(message), t); } private void log(Level level, String msg, Throwable ex) { if (logger.isLoggable(level)) { // Hack (?) to get the stack trace. Throwable dummyException = new Throwable(); StackTraceElement[] locations = dummyException.getStackTrace(); // Caller will be the third element String cname = "unknown"; String method = "unknown"; if (locations != null && locations.length > 2) { StackTraceElement caller = locations[2]; cname = caller.getClassName(); method = caller.getMethodName(); } if (ex == null) { logger.logp(level, cname, method, msg); } else { logger.logp(level, cname, method, msg, ex); } } } static Log getInstance(String name) { return new DirectJDKLog(name); } }
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
18.74
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 9 9