/* * Copyright 2012 The Netty Project * The Netty Project 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.waarp.common.logging; import java.util.logging.Level; import java.util.logging.Logger; /** * Logger factory which creates a * <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/logging/">java.util.logging</a> * logger. */ public class WaarpJdkLoggerFactory extends WaarpLoggerFactory { /** * @param level */ public WaarpJdkLoggerFactory(final WaarpLogLevel level) { super(level); seLevelSpecific(currentLevel); } @Override public WaarpLogger newInstance(final String name) { return new WaarpJdkLogger(Logger.getLogger(name)); } @Override protected void seLevelSpecific(final WaarpLogLevel level) { final Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); switch (level) { case TRACE: logger.setLevel(Level.FINEST); break; case DEBUG: logger.setLevel(Level.FINE); break; case INFO: logger.setLevel(Level.INFO); break; case WARN: logger.setLevel(Level.WARNING); break; case ERROR: logger.setLevel(Level.SEVERE); break; default: logger.setLevel(Level.WARNING); break; } } @Override protected WaarpLogLevel getLevelSpecific() { final Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); if (logger.isLoggable(Level.FINEST)) { return WaarpLogLevel.TRACE; } else if (logger.isLoggable(Level.FINE)) { return WaarpLogLevel.DEBUG; } else if (logger.isLoggable(Level.INFO)) { return WaarpLogLevel.INFO; } else if (logger.isLoggable(Level.WARNING)) { return WaarpLogLevel.WARN; } else if (logger.isLoggable(Level.SEVERE)) { return WaarpLogLevel.ERROR; } return null; } }