1 /* 2 * This file is part of Waarp Project (named also Waarp or GG). 3 * 4 * Copyright (c) 2019, Waarp SAS, and individual contributors by the @author 5 * tags. See the COPYRIGHT.txt in the distribution for a full listing of 6 * individual contributors. 7 * 8 * All Waarp Project is free software: you can redistribute it and/or 9 * modify it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or (at your 11 * option) any later version. 12 * 13 * Waarp is distributed in the hope that it will be useful, but WITHOUT ANY 14 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 * A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License along with 18 * Waarp . If not, see <http://www.gnu.org/licenses/>. 19 */ 20 21 /* 22 * Copyright 2012 The Netty Project 23 * The Netty Project licenses this file to you under the Apache License, 24 * version 2.0 (the "License"); you may not use this file except in compliance 25 * with the License. You may obtain a copy of the License at: 26 * http://www.apache.org/licenses/LICENSE-2.0 27 * Unless required by applicable law or agreed to in writing, software 28 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 29 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 30 * License for the specific language governing permissions and limitations 31 * under the License. 32 */ 33 package org.waarp.common.logging; 34 35 import java.util.logging.Level; 36 import java.util.logging.Logger; 37 38 /** 39 * Logger factory which creates a 40 * <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/logging/">java.util.logging</a> 41 * logger. 42 */ 43 public class WaarpJdkLoggerFactory extends WaarpLoggerFactory { 44 45 /** 46 * @param level 47 */ 48 public WaarpJdkLoggerFactory(final WaarpLogLevel level) { 49 super(level); 50 seLevelSpecific(currentLevel); 51 } 52 53 @Override 54 public WaarpLogger newInstance(final String name) { 55 return new WaarpJdkLogger(Logger.getLogger(name)); 56 } 57 58 @Override 59 protected final void seLevelSpecific(final WaarpLogLevel level) { 60 final Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); 61 switch (level) { 62 case TRACE: 63 logger.setLevel(Level.FINEST); //NOSONAR 64 break; 65 case DEBUG: 66 logger.setLevel(Level.FINE); //NOSONAR 67 break; 68 case INFO: 69 logger.setLevel(Level.INFO); //NOSONAR 70 break; 71 case ERROR: 72 logger.setLevel(Level.SEVERE); //NOSONAR 73 break; 74 case WARN: 75 logger.setLevel(Level.WARNING); //NOSONAR 76 break; 77 default: 78 logger.setLevel(Level.OFF); //NOSONAR 79 break; 80 } 81 } 82 83 @Override 84 protected final WaarpLogLevel getLevelSpecific() { 85 final Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); 86 if (logger.isLoggable(Level.FINEST)) { 87 return WaarpLogLevel.TRACE; 88 } else if (logger.isLoggable(Level.FINE)) { 89 return WaarpLogLevel.DEBUG; 90 } else if (logger.isLoggable(Level.INFO)) { 91 return WaarpLogLevel.INFO; 92 } else if (logger.isLoggable(Level.WARNING)) { 93 return WaarpLogLevel.WARN; 94 } else if (logger.isLoggable(Level.SEVERE)) { 95 return WaarpLogLevel.ERROR; 96 } 97 return WaarpLogLevel.NONE; 98 } 99 }