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