[logback-user] Logger level from Layout class

gaston sponer gaston.sponer at hotmail.com
Tue Jul 30 21:40:22 CEST 2013


I need to show logger level on my log. Ex:
Log:event level: ERROR logger level: debug [main] Company_Module - Personal: name=John, age=36, id=3124362]
I understand isDebugEnabled, but this is not what i'm looking. My logger levele (set on xml config file) could be any level (info, trace, error, debug...) is not about debug level, is about print the level from logger that i can set on xml.
If i had this in my xml :<logger name="employee" level="info"/>
my log would print :
event level: ERROR logger level: info[main] Company_Module -  Personal: name=John, age=36, id=3124362]
My concern is about what other way exist to get logger level different what i'm using now:
String level= ((Logger)LoggerFactory.getLogger("employee")).getLevel().toString();
public String doLayout(ILoggingEvent event) {		    StringBuffer sbuf = new StringBuffer(128);		    sbuf.append("event level: ");		    sbuf.append(event.getLevel());		    sbuf.append(" logger level: ");		    sbuf.append(getLevel());		    sbuf.append(" [");		    sbuf.append(event.getThreadName());		    sbuf.append("] ");		    sbuf.append(event.getLoggerName());		    sbuf.append(" - ");                    logMsg.append(employee.getPerson());		    return sbuf.toString();}
public String getLevel() {	return level; }
public void setLevel(String level) {	this.level = level;}		  Thanks,
GastonFrom: nabble at diroussel.xsmail.com
Date: Tue, 30 Jul 2013 20:18:37 +0100
To: logback-user at qos.ch
Subject: Re: [logback-user] Logger level from Layout class

Gaston,
Normally if you need to do something based on the logging level, you'd do.
if (log.isDebugEnabled()) { …}
Is there some special reason why you'd need the exact level?
David
On 30 Jul 2013, at 19:33, gaston sponer <gaston.sponer at hotmail.com> wrote:Hi, Is there any way to get from MyLayout the logger level? I don't want to do this:
package com.render;import org.slf4j.LoggerFactory;import ch.qos.logback.classic.Logger;import ch.qos.logback.classic.spi.ILoggingEvent;import ch.qos.logback.core.LayoutBase;
import com.render.domain.Employee;
public class MyLayout extends LayoutBase<ILoggingEvent>{			String level= ((Logger)LoggerFactory.getLogger("employee")).getLevel().toString();......
This works well but i don't like to instantiate an object just to get a logger level.

This is my xml config file:
<configuration><logger name="employee" level="debug"/>	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">      		<layout class="com.render.MyLayout"  >      		</layout>    	</encoder>    </appender>			<root level="off">		<appender-ref ref="CONSOLE" />	</root></configuration>

Thanks,Gastón.
_______________________________________________
Logback-user mailing list
Logback-user at qos.ch
http://mailman.qos.ch/mailman/listinfo/logback-user

_______________________________________________
Logback-user mailing list
Logback-user at qos.ch
http://mailman.qos.ch/mailman/listinfo/logback-user 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20130730/97cc2e36/attachment-0001.html>


More information about the Logback-user mailing list