1 package org.lcsim.util.log;
2
3 import java.util.logging.Formatter;
4 import java.util.logging.Handler;
5 import java.util.logging.Level;
6 import java.util.logging.LogRecord;
7 import java.util.logging.Logger;
8 import java.util.logging.StreamHandler;
9
10
11
12
13
14
15 public class LogUtil {
16
17 private LogUtil() {
18 }
19
20 public static Logger create(final String name, Formatter formatter, final Level level) {
21 final Logger logger = Logger.getLogger(name);
22 logger.setUseParentHandlers(false);
23 logger.setLevel(level);
24 if (formatter == null) {
25 formatter = new DefaultLogFormatter();
26 }
27 final Handler handler = new StreamHandler(System.out, formatter) {
28 @Override
29 public void publish(final LogRecord record) {
30 super.publish(record);
31 flush();
32 }
33 };
34 handler.setLevel(Level.ALL);
35 logger.addHandler(handler);
36 return logger;
37 }
38
39 public static Logger create(final Class<?> klass, final Formatter formatter) {
40 return create(klass.getName(), formatter, Level.INFO);
41 }
42
43 public static Logger create(final Class<?> klass) {
44 return create(klass, null);
45 }
46
47 public static Logger create(final Class<?> klass, final Formatter formatter, final Level level) {
48 return create(klass.getName(), formatter, level);
49 }
50
51 public static void setLevel(final Logger logger, final Level level) {
52 logger.setLevel(level);
53 for (final Handler handler : logger.getHandlers()) {
54 handler.setLevel(level);
55 }
56 }
57 }