简体   繁体   English

log4j INFO级别未记录信息

[英]log4j INFO level not logging information

I am using log4j ogging for my project. 我正在为我的项目使用log4j ogging。 Unfortunately, i am not able to log the info levels in the application that i havelogged manually.. though it is logging the database logs perfectly! 不幸的是,我无法在我手动记录的应用程序中记录信息级别。尽管它可以完美地记录数据库日志!

Here is my properties file : 这是我的属性文件:

log4j.rootLogger=OFF

log4j.appender.serviceLog=org.apache.log4j.RollingFileAppender
log4j.appender.serviceLog.File=C:/Users/prateekg/Desktop/log4j/log

log4j.appender.dbLog=org.apache.log4j.RollingFileAppender
log4j.appender.dbLog.File=C:/Users/prateekg/Desktop/log4j/dbLog

log4j.appender.serviceLog.MaxFileSize=1MB
log4j.appender.serviceLog.MaxBackupIndex=1

log4j.appender.serviceLog.layout=org.apache.log4j.PatternLayout
log4j.appender.serviceLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.appender.dbLog.layout=org.apache.log4j.PatternLayout
log4j.appender.dbLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.category.serviceLog=INFO,serviceLog
log4j.category.org.springframework.jdbc=DEBUG, dbLog

EDIT: 编辑:

This is my log code: 这是我的日志代码:

public static Logger logger = Logger.getLogger(Controller.class);
Boolean commit=false;
public Controller(DashBoardDAO dao,MessageProcessor mp, HandlerFactory hf, ToXML xml)
{
    this.dao=dao;
    this.mp=mp;
    this.hf=hf;
    this.xml=xml;
    PropertyConfigurator.configure("log4j.properties");
}

public Boolean controlFlow(Message message)
{
    Handler handler=null;
    String data[]=null;
    Boolean flag=false;

    int count=0;

    handler=initializeHandlerFactory(message);
    data=getMessage(handler,message);
    flag=validate(data);
    count=getEventCount(data);
    //commit=mp.flag1;
    //System.out.println("The flag is "+flag);

    if(flag)
    {
        System.out.println("inside flag");
        String elementNames[]=dao.getElementNames(Integer.parseInt(data[0]));
        System.out.println("No of tags "+elementNames.length);
        logger.info("No of tags in the generated XML is "+elementNames.length);
        File xmlFile=xml.convertToXML(elementNames, data);
        logger.info("Temporary XML File created");
        logger.info("Data sent for insertion");
        dao.insert(count, data,xmlFile);
        Boolean f=xmlFile.delete();
        System.out.println("Temp XML file Deleted: "+f);
        if(f)
        {
        logger.info("Temporary XML File deleted");
        commit=mp.flag1;
        }
        else
            logger.info("Error in deleting temporary XML File");
    }

You either need to define your logger as Logger.getLogger("serviceLog") or define a custom appender matching your Class 您需要将记录器定义为Logger.getLogger("serviceLog")或定义与您的Class匹配的自定义附加程序

log4j.category.my.package.Controller=INFO,serviceLog

or your package 或你的包裹

log4j.category.my.package=INFO,serviceLog

Also, calling PropertyConfigurator.configure("log4j.properties"); 另外,调用PropertyConfigurator.configure("log4j.properties"); is not necessary, as this is the default configuration file name being looked up by log4j at startup. 不需要,因为这是启动时log4j查找的默认配置文件名。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM