2012-11-22 8 views
5

Vorrei controllare la registrazione configurando il livello di registro in logger.xml.registrazione con livello informazioni in play framework 2.0.3 per java utilizzando il registratore di giochi

Ho usato play.Logger con livello ERROR impostato in logger.xml ma logger con livello INFO, anche DEBGU viene registrato.

Ho utilizzato log di ALogger = play.Logger.of (Application.class); con livello INFO in logger.xml ma vengono registrati solo i log degli errori.

Ho provato a creare la classe di registrazione personalizzata anche con metodi personalizzati per informazioni e debug ma non ha funzionato.

Non ho trovato alcuna soluzione in nessuna delle pagine del forum/della comunità. Per favore guidami come procedere ulteriormente.

Di seguito si riporta il codice & anche la logger.xml

package test 

import play.mvc.Controller; 
import play.mvc.Result; 
import views.html.index; 

public class Application extends Controller { 

    public static Result index() { 
     return ok(index.render("Rendering ")); 
    } 

    public static Result ourApp() { 
     ALogger log = play.Logger.of(Application.class); 
     log.info("**** Info enabled *****"); 
     log.debug("**** debug enabled *****"); 
     log.error("**** error enabled *****"); 
     if(log.isDebugEnabled()) 
     { 
      log.debug("**** Debug enabled *****"); 
     } 
     if(log.isInfoEnabled()) 
     { 
      log.info("**** Info enabled *****"); 
     } 
     if(log.isErrorEnabled()) 
     { 
      log.error("**** Error enabled *****"); 
     } 
     return ok(); 
    } 

    public static Result getXPage(String patId) { 
     String xValue = TestDao.getXNotes(patId); 
     return ok(test.render(Value)); 
    } 
} 

logger.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" /> 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>${application.home}/logs/app.log</file> 
    <encoder> 
     <pattern>%date - [%level] - from %logger %n%message%n%xException%n</pattern> 
    </encoder> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 

    <encoder> 
     <pattern>%date - [%level] - %logger{15} - %message%n%xException{5}</pattern> 
    </encoder> 
    </appender> 

    <logger name="play" level="INFO" /> 
    <logger name="application" level="INFO" /> 

    <root level="ERROR"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

uscita: -

2012-11-22 19:05:43,920 - [INFO] - from play 
Application started (Dev) 

2012-11-22 19:05:44,127 - [ERROR] - from test.Application 
**** error enabled ***** 

risposta

7

provare a utilizzare il nam logger e invece del nome della classe

ALogger log = play.Logger.of("application"); 

Questo wokrs multa. Anche commentare le righe che menzionano il livello di log nel file application.conf

+0

Si può usare solo per questo: play.Logger # info (java.lang.String). Il problema è che questo non stamperà il nome della classe da cui stai loggando la classe. Stampa 'play.Logger $ ALogger - 2016-10-02 01: 19: 47,684 - abcxyz i miei registri delle applicazioni ' – saurabheights

0

ho attaccato sullo stesso tema ed inoltre non è stato stampato numero di riga effettivo e il nome della classe di mio log, dopo lunga ricerca ho trovato questo project su git -hub e ho provato il logger sl4j come segue e funziona.

controller

private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("controller"); 

Logger.xml

<logger name="controller" level="DEBUG" />

Infine commentata tutti i livelli di log in application.conf.

Problemi correlati