001package com.box.sdk; 002 003import static java.util.logging.Level.ALL; 004import static java.util.logging.Level.FINE; 005import static java.util.logging.Level.INFO; 006import static java.util.logging.Level.OFF; 007import static java.util.logging.Level.SEVERE; 008import static java.util.logging.Level.WARNING; 009 010import java.util.logging.Handler; 011import java.util.logging.Level; 012import java.util.logging.Logger; 013 014/** Logger class. */ 015public final class BoxLogger { 016 private static final BoxLogger DEFAULT_LOGGER = new BoxLogger("com.box.sdk"); 017 private final Logger logger; 018 019 private BoxLogger(String name) { 020 logger = Logger.getLogger(name); 021 } 022 023 /** 024 * Get logger instance 025 * 026 * @return logger instance. 027 */ 028 public static BoxLogger defaultLogger() { 029 return DEFAULT_LOGGER; 030 } 031 032 /** 033 * Log message with level DEBUG {@link Level#FINE} 034 * 035 * @param message message to log 036 */ 037 public void debug(String message) { 038 logger.fine(message); 039 } 040 041 /** 042 * Log message with level INFO {@link Level#INFO} 043 * 044 * @param message message to log 045 */ 046 public void info(String message) { 047 logger.info(message); 048 } 049 050 /** 051 * Log message with level WARNING {@link Level#WARNING} 052 * 053 * @param message message to log 054 */ 055 public void warn(String message) { 056 logger.warning(message); 057 } 058 059 /** 060 * Log message with level WARNING {@link Level#SEVERE} 061 * 062 * @param message message to log 063 */ 064 public void error(String message) { 065 logger.severe(message); 066 } 067 068 /** 069 * Check if DEBUG level is enabled 070 * 071 * @return true if DEBUG level is enabled 072 */ 073 public boolean isDebugEnabled() { 074 return logger.isLoggable(FINE); 075 } 076 077 /** 078 * Check if INFO level is enabled 079 * 080 * @return true if INFO level is enabled 081 */ 082 public boolean isInfoEnabled() { 083 return logger.isLoggable(INFO); 084 } 085 086 /** 087 * Check if WARN level is enabled 088 * 089 * @return true if WARN level is enabled 090 */ 091 public boolean isWarnEnabled() { 092 return logger.isLoggable(WARNING); 093 } 094 095 /** 096 * Check if ERROR level is enabled 097 * 098 * @return true if ERROR level is enabled 099 */ 100 public boolean isErrorEnabled() { 101 return logger.isLoggable(SEVERE); 102 } 103 104 /** Set logging level to ALL {@link Level#ALL} */ 105 public void setLevelToAll() { 106 this.logger.setLevel(ALL); 107 } 108 109 /** Reset logging level to default. */ 110 public void resetToDefaultLevel() { 111 this.logger.setLevel(null); 112 } 113 114 /** Set logging level to INFO {@link Level#INFO} */ 115 public void setLevelToInfo() { 116 this.logger.setLevel(INFO); 117 } 118 119 /** Set logging level to WARNING {@link Level#WARNING} */ 120 public void setLevelToWarning() { 121 this.logger.setLevel(WARNING); 122 } 123 124 /** Set logging level to ERROR {@link Level#SEVERE} */ 125 public void setLevelToError() { 126 this.logger.setLevel(SEVERE); 127 } 128 129 /** Turns logging off */ 130 public void turnLoggingOff() { 131 this.logger.setLevel(OFF); 132 } 133 134 /** 135 * Specify whether this logger should send its output to its parent Logger. This means that any 136 * LogRecords will also be written to the parent's Handlers, and potentially to its parent, 137 * recursively up the namespace. 138 * 139 * @param useParentHandlers true if output is to be sent to the logger's parent. 140 * @throws SecurityException if a security manager exists, this logger is not anonymous, and the 141 * caller does not have LoggingPermission("control"). 142 */ 143 public void setUseParentHandlers(boolean useParentHandlers) { 144 this.logger.setUseParentHandlers(useParentHandlers); 145 } 146 147 /** 148 * Adds handler to logger. Check {@link Logger#addHandler(Handler)} 149 * 150 * @param handler a logging handler to add. 151 */ 152 public void addHandler(Handler handler) { 153 logger.addHandler(handler); 154 } 155 156 /** 157 * Removes handler from logger. Will not fail if handler is null or not registered. Check {@link 158 * Logger#removeHandler(Handler)} 159 * 160 * @param handler a logging handler to remove. 161 */ 162 public void removeHandler(Handler handler) { 163 logger.removeHandler(handler); 164 } 165}