You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Russell Reeves <ru...@benefitfocus.com> on 2005/03/17 19:46:05 UTC
logging not working
Hi,
I've inherited the logging responsibilities for a large API and the
existing log4j calls are not working.
Here's the init:
private static transient Logger logger =
Logger.getLogger(EZReadMap.class.getName());
EZReadMap is in:
package bf.tool.extractor.maps;
So, I expect the name of the logger to be
bf.tool.extractor.maps.EZReadMap
There are various calls through the class to logger.debug, logger.info
etc.
Here's the config file:
-----------------------------------------------------------------------
# log4j.rootLogger=OFF, auditTrailFileAppender
# We now have 3 loggers for the extractor (not including payroll and
flex):
# bf.extractor
# -- This is the "audit trail" catch-all.
# bf.extractor.csLogger
# -- This is what we want carrier services to see on the console
# bf.extractor.subLogger
# -- This is the "subscriber-error" data we want to place in
MAPMANAGER.err
# audit trail logger
log4j.logger.bf.tool.extractor=DEBUG, auditTrailFileAppender
# what carrier services sees on the console
log4j.logger.bf.tool.extractor.csLogger=INFO, csConsoleAppender
log4j.logger.bf.tool.extractor.csLoggerNoLineFeed=DEBUG,
csConsoleNoLineFeedAppender
# for subscriber-specific errors
log4j.logger.bf.tool.extractor.subLogger=DEBUG, subscriberFileAppender
# flex logger
log4j.logger.bf.tool.extractor.flexLogger=DEBUG, flexFileAppender
# payroll logger
log4j.logger.bf.tool.extractor.payrollLogger=DEBUG, payrollFileAppender
# requeue logger
log4j.logger.bf.tool.extractor.requeueLogger=DEBUG, requeueFileAppender
# xstream logger
log4j.logger.bf.tool.extractor.xstreamLogger=DEBUG, xstreamFileAppender
############### appenders
# console section
log4j.appender.csConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.csConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.csConsoleAppender.layout.ConversionPattern=%m%n
# console section
log4j.appender.csConsoleNoLineFeedAppender=org.apache.log4j.ConsoleAppen
der
log4j.appender.csConsoleNoLineFeedAppender.layout=org.apache.log4j.Patte
rnLayout
log4j.appender.csConsoleNoLineFeedAppender.layout.ConversionPattern=%m
log4j.appender.subscriberFileAppender=org.apache.log4j.FileAppender
log4j.appender.subscriberFileAppender.File=MAPMANAGER.err
log4j.appender.subscriberFileAppender.layout=org.apache.log4j.PatternLay
out
log4j.appender.subscriberFileAppender.layout.ConversionPattern=%-30c{1}
%-5p %d{HH:mm:ss} - %m%n
log4j.appender.auditTrailFileAppender=org.apache.log4j.FileAppender
log4j.appender.auditTrailFileAppender.File=extractor.log
log4j.appender.auditTrailFileAppender.layout=org.apache.log4j.PatternLay
out
log4j.appender.auditTrailFileAppender.layout.ConversionPattern=%-30c{1}
%-5p %d{HH:mm:ss} - %m%n
log4j.appender.flexFileAppender=org.apache.log4j.FileAppender
log4j.appender.flexFileAppender.File=FLEXMANAGER.log
log4j.appender.flexFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.flexFileAppender.layout.ConversionPattern=%-30c{1} %-5p
%d{HH:mm:ss} - %m%n
log4j.appender.payrollFileAppender=org.apache.log4j.FileAppender
log4j.appender.payrollFileAppender.File=PAYROLLMANAGER.log
log4j.appender.payrollFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.payrollFileAppender.layout.ConversionPattern=%-30c{1}
%-5p %d{HH:mm:ss} - %m%n
log4j.appender.requeueFileAppender=org.apache.log4j.FileAppender
log4j.appender.requeueFileAppender.File=REQUEUE.log
log4j.appender.requeueFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.requeueFileAppender.layout.ConversionPattern=%-30c{1}
%-5p %d{HH:mm:ss} - %m%n
log4j.appender.xstreamFileAppender=org.apache.log4j.FileAppender
log4j.appender.xstreamFileAppender.File=xstream.txt
log4j.appender.xstreamFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.xstreamFileAppender.layout.ConversionPattern=%-30c{1}
%-5p %d{HH:mm:ss} - %m%n
I'm expecting the log messages to go into the file named extractor.log
but they don't show up there.
Someone came up with a workaround where they created a static class that
programmatically sets up logging:
package bf.tool.extractor.maps.utils;
import org.apache.log4j.Logger;
import org.apache.log4j.Appender;
import org.apache.log4j.FileAppender;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.io.File;
import bf.tool.extractor.Config;
import bf.tool.extractor.EDIException;
/*
* $Id: SubOut.java,v 1.10 2004/12/01 15:55:40 jsquires Exp $
*
* Copyright(c) 2000 - 2004 by Benefitfocus.com, Inc., All rights
reserved.
*/
public class SubOut {
protected static transient Logger logger =
Logger.getLogger("bf.tool.extractor.subLogger");
static {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
Calendar rightNow = Calendar.getInstance();
FileAppender appender =
(FileAppender)logger.getAppender("subscriberFileAppender");
if (appender != null) {
String dir= null;
try {
String mapCode = Config.getInstance().getMapCode();
boolean isOE = Config.getInstance().isOEMode();
String outputDir = Config.getInstance().getOutputDir();
if (outputDir==null) {
outputDir="";
}
if (mapCode == null) {
mapCode = "";
}
dir = outputDir + ( isOE ? "OE\\" : "" ) + mapCode;
} catch (EDIException e) {
// ignore
}
if (dir != null) {
File dirs = new File (dir);
dirs.mkdirs();
}
appender.setFile((dir ==null?"":dir) + "\\MAPMANAGER" +
sdf.format(rightNow.getTime()) + ".err");
appender.activateOptions();
}
}
public static String getFileName() {
FileAppender appender =
(FileAppender)logger.getAppender("subscriberFileAppender");
if (appender != null) {
String dir= null;
try {
dir = Config.getInstance().getOutputDir();
} catch (EDIException e) {
// ignore
}
return appender.getFile();
} else {
return "";
}
}
public static void debug(Object message) {
logger.debug(message);
}
public static void info(Object message) {
logger.info(message);
}
public static void warn(Object message) {
logger.warn(message);
}
public static void error(Object message) {
logger.error(message);
}
public static void fatal(Object message) {
logger.fatal(message);
}
}
Sooooo... why doesn't the bf.tool.extractor.maps.EZReadMap Logger
work?
****************************************************************************************
BENEFITFOCUS.COM CONFIDENTIALITY NOTICE: This electronic message is intended only for the individual or entity to which it is addressed and may contain information that is confidential and protected by law. Unauthorized review, use, disclosure, or dissemination of this communication or its contents in any way is prohibited and may be unlawful. If you are not the intended recipient or a person responsible for delivering this message to an intended recipient, please notify the original sender immediately by e-mail or telephone, return the original message to the original sender or to bfpostmaster@benefitfocus.com, and destroy all copies or derivations of the original message. Thank you. (BFeComNote Rev. 07/29/2003)
***************************************************************************************