Java >> Java tutorial >  >> Tag >> Log4j

Log4j Hvordan stopper jeg min logger i at udskrive til konsollen?

Linjen

MEMORY_APPENDER=false

ikke virker, kan du ikke indstille en appender til at have værdien false.

I dit tilfælde må du hellere gøre noget som dette:

log4j.rootLogger=ERROR, console
log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.logger.nz.ac.massey.cs.sdc.log4jassignment.s06005586.MemoryAppender = ERROR, MEMORY_APPENDER
log4j.additivity.nz.ac.massey.cs.sdc.log4jassignment.s06005586.MemoryAppender = false

Loggeren, der bruges i et af dine eksempler, er nz.ac.massey.cs.sdc.log4jassignment.s06005586.MemoryAppender og det skal tilknyttes en logger i log4j.properties eller bare pakkedelen som nz.ac.massey.cs.sdc.log4jassignment .

Det lader til, at du blander meget her. Er Log4jMemoryAppender din MEMORY_APPENDER eller ej?

Og hvorfor ringer du til BasicConfigurator.configure() ? Vil du ikke bruge log4j.properties ?

Normalt i en klasse gør man dette for at få en logger:

package com.mycompany;

public class MyClass {
    private static final Logger log = Logger.getLogger(MyClass.class);
    ...
}

Loggernavnet vil være det fuldt kvalificerede klassenavn com.mycompany.MyClass .

Så kan du have en log4j.properties sådan her:

log4j.rootLogger=ERROR, console
log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.logger.com.mycompany=INFO, file
log4j.additivity.com.mycompany=false

logfj.appender.file = <some file appender>

OK, start fra begyndelsen. En meget simpelt eksempel.

src/main/java/Log4JTest.java

package org.stackoverflow;

import org.apache.log4j.Logger;

/**
 * @author maba, 2012-08-22
 */
public class Log4JTest {

    public static final Logger log = Logger.getLogger(Log4JTest.class);

    public static void main(String[] args) {
        log.error("Error in main");
    }
}

src/main/resources/log4j.properties

log4j.rootLogger = ERROR, console

log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

Kompiler nu og sørg for, at log4j.properties er i din klassesti sammen med log4j.jar og dine egne klasser, når du løber.

Du vil se dette:

0    [main] ERROR org.stackoverflow.Log4JTest  - Error in main

Herfra kan du prøve at tilføje en filtilføjelse eller din egen hukommelsesappender.


Java tag