Jjreina
Jjreina

Reputation: 2713

configure log4j file

I have this log4j.config

<appender name="FileInfoStatistics" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${log.dir}/T_Statistics.log" />
<param name="MaxFileSize" value="8000KB"/>
<!-- Keep one backup file -->
<param name="MaxBackupIndex" value="1"/>
<layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" value="%d %5p %c{1} - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
  <param name="levelMin" value="INFO" />
</filter>
</appender>

but I would like just when then file T_Statistics.log is created firt time and one line as e.g This a log file, Is this possible from log4j.config?

I saw this is possible en log4net with:

<param name="Header" value="xxxx"

Is there something like in log4j?

Upvotes: 2

Views: 437

Answers (1)

Jjreina
Jjreina

Reputation: 2713

Well, After some research I found a solution to my problem, said if someone would be useful.

I have created a custom appender:

package com.mycompany.logger;

import org.apache.log4j.PatternLayout;

public class MyPatterLayout extends PatternLayout 
{  
    @Override  
    public String getHeader()
    {  
        return "message id, file name, start time, end time, status" +  System.getProperty("line.separator");
    }
}  

And then I have configured my log4j.xml:

<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
<param name="Target" value="System.out"/> 
<layout class="com.mycompany.logger.MyPatterLayout"> 
    <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
</layout>

And this is the result:

message id, file name, start time, end time, status
DEBUG App - Here is some DEBUG
INFO  App - Here is some INFO
WARN  App - Here is some WARN 
ERROR App - Here is some ERROR
FATAL App - Here is some FATAL

Upvotes: 2

Related Questions