All pastes #2129293 Raw Edit

Anonymous

public text v1 · immutable
#2129293 ·published 2012-03-17 16:09 UTC
rendered paste body
@Startup
@Singleton
public class LogBean implements LogLocal {

    private static org.apache.log4j.Logger logger;

    private static final String LOG_DIR = "/var/emeklog";
    private static final String LOG_FILENAME = "emek.log";
    private static final String LOG_PATTERN = "%d{yyyyMMddHHmmss}\t%5p\t%m%n";
    private static final int LOG_IO_BUFFER_SIZE_BYTES = 16384;
    private static final String ROLLOVER_PATTERN="'.'yyyyMMddHH";

    @Override
    @PostConstruct
    public void postConstruct() {

        logger = org.apache.log4j.Logger.getLogger(LogBean.class);

        try {

          final File logDir = new File(LOG_DIR);
          logDir.mkdirs();

          final File logFile = new File(logDir,String.format("%s%s",System.getProperty("file.separator"),LOG_FILENAME));
          
          final org.apache.log4j.PatternLayout pl = new org.apache.log4j.PatternLayout(LOG_PATTERN);
          final org.apache.log4j.DailyRollingFileAppender dfp = new org.apache.log4j.DailyRollingFileAppender(pl,logFile.getCanonicalPath(), ROLLOVER_PATTERN);


          // we might not want immediate flush
          dfp.setImmediateFlush(true);
          dfp.setBufferedIO(false);
          dfp.setBufferSize(LOG_IO_BUFFER_SIZE_BYTES);

          logger.removeAllAppenders();

          logger.setLevel(org.apache.log4j.Level.INFO);
          logger.addAppender(dfp);

        } catch (Exception e) {
          e.printStackTrace(System.err);
        }

        Logger.getLogger(LogBean.class.getName()).log(Level.INFO,"LogBean started.");

    }

    @Override
    @PreDestroy
    public void preDestroy() {
        Logger.getLogger(LogBean.class.getName()).log(Level.INFO, "LogBean thread destroyed.");
    }

    private StringBuilder formBuffer(String tag, String ipNum, String sessionId, String userAgent, String referrer, String sessionCookie) {
        StringBuilder sb = new StringBuilder(tag);
        sb.append("\t");
        sb.append(ipNum);
        sb.append("\t");
        sb.append(sessionId);
        sb.append("\t");
        sb.append(sessionCookie);
        sb.append("\t");
        sb.append(userAgent);
        sb.append("\t");
        sb.append(referrer);
        sb.append("\t");
        return sb;
    }