001
014
015 package com.liferay.portal.kernel.test;
016
017 import java.util.List;
018 import java.util.concurrent.CopyOnWriteArrayList;
019 import java.util.logging.Handler;
020 import java.util.logging.Level;
021 import java.util.logging.LogRecord;
022 import java.util.logging.Logger;
023
024
027 public class JDKLoggerTestUtil {
028
029 public static List<LogRecord> configureJDKLogger(String name, Level level) {
030 Logger logger = Logger.getLogger(name);
031
032 for (Handler handler : logger.getHandlers()) {
033 logger.removeHandler(handler);
034 }
035
036 logger.setLevel(level);
037 logger.setUseParentHandlers(false);
038
039 CaptureHandler captureHandler = new CaptureHandler();
040
041 logger.addHandler(captureHandler);
042
043 return captureHandler._logRecords;
044 }
045
046 private static class CaptureHandler extends Handler {
047
048 @Override
049 public void close() throws SecurityException {
050 _logRecords.clear();
051 }
052
053 @Override
054 public void flush() {
055 _logRecords.clear();
056 }
057
058 @Override
059 public boolean isLoggable(LogRecord logRecord) {
060 return false;
061 }
062
063 @Override
064 public void publish(LogRecord logRecord) {
065 _logRecords.add(logRecord);
066 }
067
068 private List<LogRecord> _logRecords =
069 new CopyOnWriteArrayList<LogRecord>();
070
071 }
072
073 }