1 /* 2 * #%L 3 * AbstractLog.java - mongodb-async-driver - Allanbank Consulting, Inc. 4 * %% 5 * Copyright (C) 2011 - 2014 Allanbank Consulting, Inc. 6 * %% 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * #L% 19 */ 20 package com.allanbank.mongodb.util.log; 21 22 import java.util.logging.Level; 23 24 /** 25 * AbstractLog implements all of the public log method to delegate to a single 26 * {@link #doLog(Level, Throwable, String, Object...)} method. 27 * 28 * @api.no This class is <b>NOT</b> part of the drivers API. This class may be 29 * mutated in incompatible ways between any two releases of the driver. 30 * @copyright 2014, Allanbank Consulting, Inc., All Rights Reserved 31 */ 32 public abstract class AbstractLog implements Log { 33 34 /** The name of this class. */ 35 protected static final Object CLASS_NAME = AbstractLog.class.getName(); 36 37 /** 38 * Creates a new AbstractLog. 39 */ 40 /* package */AbstractLog() { 41 super(); 42 } 43 44 /** 45 * {@inheritDoc} 46 * <p> 47 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 48 * </p> 49 * 50 * @see Log#debug(String) 51 */ 52 @Override 53 public final void debug(final String message) { 54 doLog(Level.FINE, (Throwable) null, message); 55 } 56 57 /** 58 * {@inheritDoc} 59 * <p> 60 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 61 * </p> 62 * 63 * @see Log#debug(String, Object[]) 64 */ 65 @Override 66 public final void debug(final String template, final Object... args) { 67 doLog(Level.FINE, null, template, args); 68 } 69 70 /** 71 * {@inheritDoc} 72 * <p> 73 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 74 * </p> 75 * 76 * @see Log#debug(Throwable, String, Object[]) 77 */ 78 @Override 79 public final void debug(final Throwable thrown, final String template, 80 final Object... args) { 81 doLog(Level.FINE, thrown, template, args); 82 } 83 84 /** 85 * {@inheritDoc} 86 * <p> 87 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 88 * </p> 89 * 90 * @see Log#error(String) 91 */ 92 @Override 93 public final void error(final String message) { 94 doLog(Level.SEVERE, (Throwable) null, message); 95 } 96 97 /** 98 * {@inheritDoc} 99 * <p> 100 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 101 * </p> 102 * 103 * @see Log#error(String, Object[]) 104 */ 105 @Override 106 public final void error(final String template, final Object... args) { 107 doLog(Level.SEVERE, null, template, args); 108 } 109 110 /** 111 * {@inheritDoc} 112 * <p> 113 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 114 * </p> 115 * 116 * @see Log#error(Throwable, String, Object[]) 117 */ 118 @Override 119 public final void error(final Throwable thrown, final String template, 120 final Object... args) { 121 doLog(Level.SEVERE, thrown, template, args); 122 } 123 124 /** 125 * {@inheritDoc} 126 * <p> 127 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 128 * </p> 129 * 130 * @see Log#info(String) 131 */ 132 @Override 133 public final void info(final String message) { 134 doLog(Level.INFO, (Throwable) null, message); 135 } 136 137 /** 138 * {@inheritDoc} 139 * <p> 140 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 141 * </p> 142 * 143 * @see Log#info(String, Object[]) 144 */ 145 @Override 146 public final void info(final String template, final Object... args) { 147 doLog(Level.INFO, null, template, args); 148 } 149 150 /** 151 * {@inheritDoc} 152 * <p> 153 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 154 * </p> 155 * 156 * @see Log#info(Throwable, String, Object[]) 157 */ 158 @Override 159 public final void info(final Throwable thrown, final String template, 160 final Object... args) { 161 doLog(Level.INFO, thrown, template, args); 162 } 163 164 /** 165 * {@inheritDoc} 166 * <p> 167 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 168 * </p> 169 * 170 * @see Log#log(Level, String) 171 */ 172 @Override 173 public final void log(final Level level, final String message) { 174 doLog(level, (Throwable) null, message); 175 } 176 177 /** 178 * {@inheritDoc} 179 * <p> 180 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 181 * </p> 182 * 183 * @see Log#log(Level, String, Object[]) 184 */ 185 @Override 186 public final void log(final Level level, final String template, 187 final Object... args) { 188 doLog(level, null, template, args); 189 } 190 191 /** 192 * {@inheritDoc} 193 * <p> 194 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 195 * </p> 196 * 197 * @see Log#log(Level, Throwable, String, Object[]) 198 */ 199 @Override 200 public final void log(final Level level, final Throwable thrown, 201 final String template, final Object... args) { 202 doLog(level, thrown, template, args); 203 } 204 205 /** 206 * {@inheritDoc} 207 * <p> 208 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 209 * </p> 210 * 211 * @see Log#warn(String) 212 */ 213 @Override 214 public final void warn(final String message) { 215 doLog(Level.WARNING, (Throwable) null, message); 216 } 217 218 /** 219 * {@inheritDoc} 220 * <p> 221 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 222 * </p> 223 * 224 * @see Log#warn(String, Object[]) 225 */ 226 @Override 227 public final void warn(final String template, final Object... args) { 228 doLog(Level.WARNING, null, template, args); 229 } 230 231 /** 232 * {@inheritDoc} 233 * <p> 234 * Overridden to call {@link #doLog(Level, Throwable, String, Object...)}. 235 * </p> 236 * 237 * @see Log#warn(Throwable, String, Object[]) 238 */ 239 @Override 240 public final void warn(final Throwable thrown, final String template, 241 final Object... args) { 242 doLog(Level.WARNING, thrown, template, args); 243 } 244 245 /** 246 * Delegate method for the {@link Log} implementation. 247 * 248 * @param level 249 * The logging level for the message. 250 * @param thrown 251 * The exception associated with the log message. 252 * @param template 253 * The message template to log. 254 * @param args 255 * The arguments to replace the <code>{}</code> entries in the 256 * template. 257 */ 258 protected abstract void doLog(Level level, Throwable thrown, 259 String template, Object... args); 260 261 }