Friday, June 5, 2009

Java code base log apender

Create Log apender using java code.

This is a small example which use to log the text in different log files according to the shortcode provided.

    private void doLog(String shortCode, String text) {
        if (!loginBuffers.containsKey(shortCode)) {
            String fileName = shortCode + ".cdr";
            logger.info("Create cdr log for " + fileName);
            Logger smsLogger = Logger.getLogger("sms." + shortCode);
            DailyRollingFileAppender appender = new DailyRollingFileAppender();
            PatternLayout layout = new PatternLayout();
            layout.setConversionPattern(conversionPattern);
            appender.setDatePattern(appenderRollingDatePattern);
            appender.setLayout(layout);
            try {
                appender.setFile(path + File.separator + fileName, true, false, 1);
            } catch (IOException e) {
                logger.error("Can not create log file [" + path + File.separator + fileName + "]", e);
            }
            appender.setBufferedIO(false);
            appender.setImmediateFlush(true);
            appender.setBufferSize(1);  //4096
            appender.activateOptions();
            appender.setName("sms_" + shortCode);
            appender.setThreshold(Priority.INFO);
            smsLogger.addAppender(appender);
            loginBuffers.put(shortCode, smsLogger);
        }
        loginBuffers.get(shortCode).info(text);

        if (logger.isDebugEnabled()) {
            logger.debug("SMS is logged into " + loginBuffers.get(shortCode).getName());
        }
    }

No comments: