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 }