Giriş
Şu satırı dahil
ederiz.
import java.util.logging.Logger;
Gerekirse şu satırı dahil
ederiz.
import java.util.logging.FileHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.SimpleFormatter;
Root Logger
Root Logger
ConsoleHandler aracılığıyla konsola loglar. Açıklaması
şöyle.
0)Every logger whatever its name is has the root logger as parent.
1) the logger property useParentHandlers is true by default
2) the root logger has a ConsoleHandler by default
So. A new logger, by default sends its log records also to his parent(point 1) that is the root logger(point 0) which, by default, logs them to console(point 2).
String Birleştirme Yerine {} Parametresi
Örnek
Bu sınıfı kullanırken string birleştirmesinden ve hesaplama yapmaktan kaçınmak için şöyle
yapmayız.
logger.debug("My text is" + x);
Şöyle yaparız.
String param1 = "1";
String param2 = "2";
LOGGER.log(Level.INFO,"Found : {0} {1} as params", new Object[]{param1, param2});
addHandler metodu Örnek
Şöyle
yaparız. FileHandler nesnesi eklenir
private final String filename = "Logs/LogFsForensics.log";
private final String loggerName = "FsLogger";
private final int limit = 1024*10000; //10 MB
private static Logger logger = Logger.getLogger(loggerName);
try {
FileHandler fileHandler = new FileHandler(filename, limit, 1, true);
SimpleFormatter simpleFormatter = new SimpleFormatter();
fileHandler.setFormatter(simpleFormatter);
logger.addHandler(fh);
} catch (SecurityException | IOException e) {
e.printStackTrace();
}
Örnek
Şöyle yaparız.
import java.util.logging.Logger;
import java.util.logging.FileHandler;
import java.util.logging.SimpleFormatter;
private static final int FILE_SIZE = 1024 * 1024 * 100; // 100 MB
private static final int FILE_COUNT = 15;
public static Logger logger = Logger.getLogger(Foo.class);
try {
System.setProperty("java.util.logging.SimpleFormatter.format",
"[%1$tF %1$tT.%1$tL] [%4$-4s] %5$s %n");
FileHandler handler = new FileHandler("my.log", FILE_SIZE, FILE_COUNT, true);
handler.setFormatter(new SimpleFormatter());
logger.addHandler(handler);
logger.setUseParentHandlers(false);
} catch (IOException e) {
logger.warning("Failed to initialize logger handler.");
}
getHandlers metodu
Örnek
Şöyle
yaparız.
public static void setDebugLevel(Level newLvl) {
Logger rootLogger = LogManager.getLogManager().getLogger("");
Handler[] handlers = rootLogger.getHandlers();
rootLogger.setLevel(newLvl);
for (Handler h : handlers) {
if(h instanceof FileHandler)
h.setLevel(newLvl);
}
}
info metodu
İmzası şöyle
public void info(String msg)
public void info(Supplier<String> msgSupplier)
log metodu
İmzası şöyle
public void log(Level level, String msg)
public void log(Level level, Supplier<String> msgSupplier)
public void log(Level level, String msg, Object param1)
public void log(Level level, String msg, Object params[])
public void log(Level level, String msg, Throwable thrown)
public void log(Level level, Throwable thrown, Supplier<String> msgSupplier)
public void log(LogRecord record)
log metodu - Level + String + Throwable
exception loglama için kullanılır. debug(),info(),warning() gibi metodlardan farklı olarak loglama seviyesi parametre olarak geçilebilir.
Örnek
try {
...something that can throw an ignorable exception
} catch( Exception ex ) {
LOGGER.log(Level.SEVERE, ex.toString(), ex);
}
log metodu - LogRecord
Örnek
Şöyle yaparız
import java.util.logging.LogRecord;
Logger logger = Logger.getLogger("...");
public void log(Level level, String message, Throwable thrown) {
LogRecord logRecord = new LogRecord(level, message);
logRecord.setLoggerName(logger.getName());
logRecord.setThrown(thrown);
logRecord.setSourceClassName(logger.getName());
logger.log(logRecord);
}
removeHandler metodu
Örnek
Şöyle
yaparız
Logger rootLogger = Logger.getLogger("");
rootLogger.removeHandler(
rootLogger.getHandlers()[0]);
Örnek
// Option 1: Remove the default ConsoleHandler :
Logger rootLogger = Logger.getLogger("");
Handler[] handlers = rootLogger.getHandlers();
for (Handler handler : handlers) {
if (handler instanceof ConsoleHandler) {
rootLogger.removeHandler(handler);
}
}
// Option 2: call LOGGER.setUseParentHandlers(false);
LOGGER.setUseParentHandlers(false);
setLevel metoduÖrnek
Şöyle
yaparız.
Logger.getLogger("").setLevel(Level.FINEST); // Root logger, for example.
Örnek
public class MyLogger {
private static final Logger hazelCastLogger = Logger.getLogger("com.hazelcast");
static {
Level level = Level.WARNING;
hazelCastLogger.setLevel(level);
}
}
setUseParentHandlers metodu
Şöyle
yaparız.
logger.setUseParentHandlers(false);