jdk/src/java.management/share/classes/com/sun/jmx/remote/util/ClassLogger.java
changeset 43235 da1786d695b6
parent 25859 3317bb8137f4
equal deleted inserted replaced
43234:cb2a6851b837 43235:da1786d695b6
     1 /*
     1 /*
     2  * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
    23  * questions.
    23  * questions.
    24  */
    24  */
    25 
    25 
    26 package com.sun.jmx.remote.util;
    26 package com.sun.jmx.remote.util;
    27 
    27 
    28 import java.util.logging.Logger;
    28 import java.lang.System.Logger;
    29 
    29 import java.lang.System.Logger.Level;
    30 public class ClassLogger {
    30 import java.util.ResourceBundle;
    31 
    31 
    32     private static final boolean ok;
    32 public class ClassLogger implements System.Logger {
       
    33 
    33     private final String className;
    34     private final String className;
    34     private final Logger logger;
    35     private final Logger logger;
    35 
    36 
    36     static {
       
    37         /* We attempt to work even if we are running in J2SE 1.3, where
       
    38            there is no java.util.logging.  The technique we use here is
       
    39            not strictly portable, but it does work with Sun's J2SE 1.3
       
    40            at least.  This is just a best effort: the Right Thing is for
       
    41            people to use at least J2SE 1.4.  */
       
    42         boolean loaded = false;
       
    43         try {
       
    44             Class<?> c = java.util.logging.Logger.class;
       
    45             loaded = true;
       
    46         } catch (Error e) {
       
    47             // OK.
       
    48             // java.util.logger package is not available in this jvm.
       
    49         }
       
    50         ok = loaded;
       
    51     }
       
    52 
       
    53     public ClassLogger(String subsystem, String className) {
    37     public ClassLogger(String subsystem, String className) {
    54         if (ok)
    38         logger = System.getLogger(subsystem);
    55             logger = Logger.getLogger(subsystem);
       
    56         else
       
    57             logger = null;
       
    58         this.className = className;
    39         this.className = className;
    59     }
    40     }
    60 
    41 
    61     public final boolean traceOn() {
    42     public final boolean traceOn() {
    62         return finerOn();
    43         return logger.isLoggable(Level.TRACE);
    63     }
    44     }
    64 
    45 
    65     public final boolean debugOn() {
    46     public final boolean debugOn() {
    66         return finestOn();
    47         return logger.isLoggable(Level.DEBUG);
    67     }
    48     }
    68 
    49 
    69     public final boolean warningOn() {
    50     public final boolean warningOn() {
    70         return ok && logger.isLoggable(java.util.logging.Level.WARNING);
    51         return logger.isLoggable(Level.WARNING);
    71     }
    52     }
    72 
    53 
    73     public final boolean infoOn() {
    54     public final boolean infoOn() {
    74         return ok && logger.isLoggable(java.util.logging.Level.INFO);
    55         return logger.isLoggable(Level.INFO);
    75     }
    56     }
    76 
    57 
    77     public final boolean configOn() {
    58     public final boolean configOn() {
    78         return ok && logger.isLoggable(java.util.logging.Level.CONFIG);
    59         return logger.isLoggable(Level.DEBUG);
    79     }
    60     }
    80 
    61 
    81     public final boolean fineOn() {
    62     public final boolean fineOn() {
    82         return ok && logger.isLoggable(java.util.logging.Level.FINE);
    63         return logger.isLoggable(Level.DEBUG);
    83     }
    64     }
    84 
    65 
    85     public final boolean finerOn() {
    66     public final boolean finerOn() {
    86         return ok && logger.isLoggable(java.util.logging.Level.FINER);
    67         return logger.isLoggable(Level.TRACE);
    87     }
    68     }
    88 
    69 
    89     public final boolean finestOn() {
    70     public final boolean finestOn() {
    90         return ok && logger.isLoggable(java.util.logging.Level.FINEST);
    71         return logger.isLoggable(Level.TRACE);
    91     }
    72     }
    92 
    73 
    93     public final void debug(String func, String msg) {
    74     public final void debug(String func, String msg) {
    94         finest(func,msg);
    75         logger.log(Level.DEBUG, msg);
    95     }
    76     }
    96 
    77 
    97     public final void debug(String func, Throwable t) {
    78     public final void debug(String func, Throwable t) {
    98         finest(func,t);
    79         logger.log(Level.DEBUG, className + "::" + func, t);
    99     }
    80     }
   100 
    81 
   101     public final void debug(String func, String msg, Throwable t) {
    82     public final void debug(String func, String msg, Throwable t) {
   102         finest(func,msg,t);
    83         logger.log(Level.DEBUG, msg, t);
   103     }
    84     }
   104 
    85 
   105     public final void trace(String func, String msg) {
    86     public final void trace(String func, String msg) {
   106         finer(func,msg);
    87         logger.log(Level.TRACE, msg);
   107     }
    88     }
   108 
    89 
   109     public final void trace(String func, Throwable t) {
    90     public final void trace(String func, Throwable t) {
   110         finer(func,t);
    91         logger.log(Level.TRACE, className + "::" + func, t);
   111     }
    92     }
   112 
    93 
   113     public final void trace(String func, String msg, Throwable t) {
    94     public final void trace(String func, String msg, Throwable t) {
   114         finer(func,msg,t);
    95         logger.log(Level.TRACE, msg, t);
   115     }
    96     }
   116 
    97 
   117     public final void error(String func, String msg) {
    98     public final void error(String func, String msg) {
   118         severe(func,msg);
    99         logger.log(Level.ERROR, msg);
   119     }
   100     }
   120 
   101 
   121     public final void error(String func, Throwable t) {
   102     public final void error(String func, Throwable t) {
   122         severe(func,t);
   103         logger.log(Level.ERROR, className + "::" + func, t);
   123     }
   104     }
   124 
   105 
   125     public final void error(String func, String msg, Throwable t) {
   106     public final void error(String func, String msg, Throwable t) {
   126         severe(func,msg,t);
   107         logger.log(Level.ERROR, msg, t);
   127     }
   108     }
   128 
   109 
   129     public final void finest(String func, String msg) {
   110     public final void finest(String func, String msg) {
   130         if (ok)
   111         logger.log(Level.TRACE, msg);
   131             logger.logp(java.util.logging.Level.FINEST, className, func, msg);
       
   132     }
   112     }
   133 
   113 
   134     public final void finest(String func, Throwable t) {
   114     public final void finest(String func, Throwable t) {
   135         if (ok)
   115         logger.log(Level.TRACE, className + "::" + func, t);
   136             logger.logp(java.util.logging.Level.FINEST, className, func,
       
   137                         t.toString(), t);
       
   138     }
   116     }
   139 
   117 
   140     public final void finest(String func, String msg, Throwable t) {
   118     public final void finest(String func, String msg, Throwable t) {
   141         if (ok)
   119         logger.log(Level.TRACE, msg, t);
   142             logger.logp(java.util.logging.Level.FINEST, className, func, msg,
       
   143                         t);
       
   144     }
   120     }
   145 
   121 
   146     public final void finer(String func, String msg) {
   122     public final void finer(String func, String msg) {
   147         if (ok)
   123         logger.log(Level.TRACE, msg);
   148             logger.logp(java.util.logging.Level.FINER, className, func, msg);
       
   149     }
   124     }
   150 
   125 
   151     public final void finer(String func, Throwable t) {
   126     public final void finer(String func, Throwable t) {
   152         if (ok)
   127         logger.log(Level.TRACE, className + "::" + func, t);
   153             logger.logp(java.util.logging.Level.FINER, className, func,
       
   154                         t.toString(), t);
       
   155     }
   128     }
   156 
   129 
   157     public final void finer(String func, String msg, Throwable t) {
   130     public final void finer(String func, String msg, Throwable t) {
   158         if (ok)
   131         logger.log(Level.DEBUG, msg, t);
   159             logger.logp(java.util.logging.Level.FINER, className, func, msg,t);
       
   160     }
   132     }
   161 
   133 
   162     public final void fine(String func, String msg) {
   134     public final void fine(String func, String msg) {
   163         if (ok)
   135         logger.log(Level.DEBUG, msg);
   164             logger.logp(java.util.logging.Level.FINE, className, func, msg);
       
   165     }
   136     }
   166 
   137 
   167     public final void fine(String func, Throwable t) {
   138     public final void fine(String func, Throwable t) {
   168         if (ok)
   139         logger.log(Level.DEBUG, className + "::" + func, t);
   169             logger.logp(java.util.logging.Level.FINE, className, func,
       
   170                         t.toString(), t);
       
   171     }
   140     }
   172 
   141 
   173     public final void fine(String func, String msg, Throwable t) {
   142     public final void fine(String func, String msg, Throwable t) {
   174         if (ok)
   143         logger.log(Level.DEBUG, msg, t);
   175             logger.logp(java.util.logging.Level.FINE, className, func, msg,
       
   176                         t);
       
   177     }
   144     }
   178 
   145 
   179     public final void config(String func, String msg) {
   146     public final void config(String func, String msg) {
   180         if (ok)
   147         logger.log(Level.DEBUG, msg);
   181             logger.logp(java.util.logging.Level.CONFIG, className, func, msg);
       
   182     }
   148     }
   183 
   149 
   184     public final void config(String func, Throwable t) {
   150     public final void config(String func, Throwable t) {
   185         if (ok)
   151         logger.log(Level.DEBUG, className + "::" + func, t);
   186             logger.logp(java.util.logging.Level.CONFIG, className, func,
       
   187                         t.toString(), t);
       
   188     }
   152     }
   189 
   153 
   190     public final void config(String func, String msg, Throwable t) {
   154     public final void config(String func, String msg, Throwable t) {
   191         if (ok)
   155         logger.log(Level.DEBUG, msg, t);
   192             logger.logp(java.util.logging.Level.CONFIG, className, func, msg,
       
   193                         t);
       
   194     }
   156     }
   195 
   157 
   196     public final void info(String func, String msg) {
   158     public final void info(String func, String msg) {
   197         if (ok)
   159         logger.log(Level.INFO, msg);
   198             logger.logp(java.util.logging.Level.INFO, className, func, msg);
       
   199     }
   160     }
   200 
   161 
   201     public final void info(String func, Throwable t) {
   162     public final void info(String func, Throwable t) {
   202         if (ok)
   163         logger.log(Level.INFO, className + "::" + func, t);
   203             logger.logp(java.util.logging.Level.INFO, className, func,
       
   204                         t.toString(), t);
       
   205     }
   164     }
   206 
   165 
   207     public final void info(String func, String msg, Throwable t) {
   166     public final void info(String func, String msg, Throwable t) {
   208         if (ok)
   167         logger.log(Level.INFO, msg, t);
   209             logger.logp(java.util.logging.Level.INFO, className, func, msg,
       
   210                         t);
       
   211     }
   168     }
   212 
   169 
   213     public final void warning(String func, String msg) {
   170     public final void warning(String func, String msg) {
   214         if (ok)
   171         logger.log(Level.WARNING, msg);
   215             logger.logp(java.util.logging.Level.WARNING, className, func, msg);
       
   216     }
   172     }
   217 
   173 
   218     public final void warning(String func, Throwable t) {
   174     public final void warning(String func, Throwable t) {
   219         if (ok)
   175         logger.log(Level.WARNING, className + "::" + func, t);
   220             logger.logp(java.util.logging.Level.WARNING, className, func,
       
   221                         t.toString(), t);
       
   222     }
   176     }
   223 
   177 
   224     public final void warning(String func, String msg, Throwable t) {
   178     public final void warning(String func, String msg, Throwable t) {
   225         if (ok)
   179         logger.log(Level.WARNING, msg, t);
   226             logger.logp(java.util.logging.Level.WARNING, className, func, msg,
       
   227                         t);
       
   228     }
   180     }
   229 
   181 
   230     public final void severe(String func, String msg) {
   182     public final void severe(String func, String msg) {
   231         if (ok)
   183         logger.log(Level.ERROR, msg);
   232             logger.logp(java.util.logging.Level.SEVERE, className, func, msg);
       
   233     }
   184     }
   234 
   185 
   235     public final void severe(String func, Throwable t) {
   186     public final void severe(String func, Throwable t) {
   236         if (ok)
   187         logger.log(Level.ERROR, className + "::" + func, t);
   237             logger.logp(java.util.logging.Level.SEVERE, className, func,
       
   238                         t.toString(), t);
       
   239     }
   188     }
   240 
   189 
   241     public final void severe(String func, String msg, Throwable t) {
   190     public final void severe(String func, String msg, Throwable t) {
   242         if (ok)
   191         logger.log(Level.ERROR, msg, t);
   243             logger.logp(java.util.logging.Level.SEVERE, className, func, msg,
   192     }
   244                         t);
   193 
   245     }
   194     public final String getName() {
       
   195         return logger.getName();
       
   196     }
       
   197 
       
   198     public final boolean isLoggable(Level level) {
       
   199         return logger.isLoggable(level);
       
   200     }
       
   201 
       
   202     public final void log(Level level, ResourceBundle bundle, String msg,
       
   203             Throwable thrown) {
       
   204         logger.log(level, bundle, msg, thrown);
       
   205     }
       
   206 
       
   207     public final void log(Level level, ResourceBundle bundle, String format,
       
   208                     Object... params) {
       
   209         logger.log(level, bundle, format, params);
       
   210     }
       
   211 
   246 }
   212 }