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 Sriram Venkatasubramanian <Sr...@adeasolutions.com> on 2005/12/10 07:44:27 UTC

How to carry fwd log messages from multiple Loggers to a single logger

Hi , 

 I have a distinct  logger  at three layer ( DAO, Service, Controller)
which all writing to one file   as 

 

DEBUG 2005-12-09 19:29:37,422  Create Order: DAO :1301

DEBUG 2005-12-09 19:29:37,429  Create Order:  Service :35

DEBUG 2005-12-09 19:29:37,432  Create Order:  Controller :51

 

I would like to get the log as a single line as 

 

 [03/Oct/2003:09:11:29 -0700] Create Order : Controller[5ms]  ,
[03/Oct/2003:09:11:29 -0700] Create Order : Service[25 MS]
[03/Oct/2003:09:11:29 -0700] Create Order : DAO[25 MS]

 

I think I have to carry fwd each log messages from each logger and
finally write in one place.  Is it psble ?   Any idea how ?

 

I am using RollingFileAppender   as 

 

      <appender name="ACPTORDER_CONTROLLER"
class="org.apache.log4j.RollingFileAppender">  

            <param name="File"
value="${oracle.j2ee.home}/log/portal/monitoring/AppMonitoring.log"/>

            <param name="Append" value="false"/>

            <param name="DatePattern" value="'.'yyyy-MM-dd"/>

            <param name="MaxFileSize" value="2MB"/>

            <param name="MaxBackupIndex" value="10"/>

            <layout class="org.apache.log4j.PatternLayout">

                  <param name="ConversionPattern" value="%-5p %d %m%n"/>


            </layout>

      </appender> 

 

 

Regards,

Sriram  V

 

 

 

 

 

 

Sriram V

Sriram.Venkatasubramanian@adeasolution.com

Adea International Pvt Ltd,
CMMi Level 5 Company

No.319/1, Bommanahalli
Hosur Main Road
Begur Hobli
Bangalore - 560 095

Tel :  +91 80 5199 2332 
       +91 80 5199 2258 (Direct line)

 


Re: How to carry fwd log messages from multiple Loggers to a single logger

Posted by Paul Smith <ps...@aconex.com>.
The usual way I would do this is use MDC.  What you require is to be  
able to correlate separate logging events together (at least be able  
to find them easily).

IN this case I'm guessing you have a unique Order identified (say,  
OrderID).  In the bit of code where you first know the OrderID, do this:

Integer orderID = ........;
MDC.put("OrderID", orderID);

At each layer,just log whatever you want to log, knowing that the MDC  
values are assigned to each loggingevent on the same thread.

Then, to be able to correlate the information in your log files, you  
need to output the MDC value.  Using PatternLayout, the %X value  
gives you access to MDC values, so adding %X{OrderID} would display  
on each line the value of the OrderID value you assigned.  You won't  
get all of the events on the same line of logs, but this is much much  
easier.  This is the way I log all events in a webapplication frame  
work, logging the userID via mDC to be able to correlate what  
happened for a given request.

The last step is to find a logical place in your thread's code to  
clear the MDC value, so that if the same thread is used again, it's  
value is not polluted:

MDC.remove("OrderID");

cheers,

Paul Smith


On 10/12/2005, at 5:44 PM, Sriram Venkatasubramanian wrote:

> Hi ,
>
>  I have a distinct  logger  at three layer ( DAO, Service, Controller)
> which all writing to one file   as
>
>
>
> DEBUG 2005-12-09 19:29:37,422  Create Order: DAO :1301
>
> DEBUG 2005-12-09 19:29:37,429  Create Order:  Service :35
>
> DEBUG 2005-12-09 19:29:37,432  Create Order:  Controller :51
>
>
>
> I would like to get the log as a single line as
>
>
>
>  [03/Oct/2003:09:11:29 -0700] Create Order : Controller[5ms]  ,
> [03/Oct/2003:09:11:29 -0700] Create Order : Service[25 MS]
> [03/Oct/2003:09:11:29 -0700] Create Order : DAO[25 MS]
>
>
>
> I think I have to carry fwd each log messages from each logger and
> finally write in one place.  Is it psble ?   Any idea how ?
>
>
>
> I am using RollingFileAppender   as
>
>
>
>       <appender name="ACPTORDER_CONTROLLER"
> class="org.apache.log4j.RollingFileAppender">
>
>             <param name="File"
> value="${oracle.j2ee.home}/log/portal/monitoring/AppMonitoring.log"/>
>
>             <param name="Append" value="false"/>
>
>             <param name="DatePattern" value="'.'yyyy-MM-dd"/>
>
>             <param name="MaxFileSize" value="2MB"/>
>
>             <param name="MaxBackupIndex" value="10"/>
>
>             <layout class="org.apache.log4j.PatternLayout">
>
>                   <param name="ConversionPattern" value="%-5p %d %m% 
> n"/>
>
>
>             </layout>
>
>       </appender>
>
>
>
>
>
> Regards,
>
> Sriram  V
>
>
>
>
>
>
>
>
>
>
>
>
>
> Sriram V
>
> Sriram.Venkatasubramanian@adeasolution.com
>
> Adea International Pvt Ltd,
> CMMi Level 5 Company
>
> No.319/1, Bommanahalli
> Hosur Main Road
> Begur Hobli
> Bangalore - 560 095
>
> Tel :  +91 80 5199 2332
>        +91 80 5199 2258 (Direct line)
>
>
>