log4j.RollingFileAppender not compressing files - log4j

How to zip backup file in log4j RollingFileAppender
I have following log4j.properties file , while exceeding size limit it is creating backup file but not zipping it.
log4j.appender.request=org.apache.log4j.RollingFileAppender
log4j.appender.request.File=${catalina.home}/webapps/Sample/WEB-INF/logs/FAW_l4j.log
log4j.appender.request.MaxFileSize=10KB
log4j.appender.request.MaxBackupIndex=3
log4j.appender.request.RollingPolicy.ActiveFileName =${catalina.home}/webapps/Sample/WEB-INF/logs/FAW_l4j.log-%d.log.
log4j.appender.request.RollingPolicy.FileNamePattern=${catalina.home}/webapps/Sample/WEB-INF/logs/FAW_l4j.log-%d.log.zip
log4j.appender.request.layout = org.apache.log4j.PatternLayout
log4j.appender.request.layout.ConversionPattern=%d %p [%c{3}] - [%t] - %X{ip}: %m%n

I have done this using logj extras .
just configur your RollingFileAppender configuration with the following and having the filename end in .gz will compress your logfiles:
<appender...>
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}**.gz**"/>
</rollingPolicy>
</appender>

Related

log4j.properties output FileName configuration should be : path+DD-MM-AAAA - Filename.log

I'm trying to have a log output file with a path like .log/ DD-MM-AAAA - Filename.log
log4j.rootLogger=DEBUG, stdout, file
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./logs/%d{yyyy-MM-dd HH:mm:ss} - logTest.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Actually it doesn't work. If I remove %d{yyyy-MM-dd HH:mm:ss} the output is : logs/logTest.log
But i need to have the date on my output file name.
What I want is :logs/DD-MM-YYYY - logTest.log
Can you please show me how to do that?
Try below snippet, it will add date to generated log file next day.
# configure the root logger
log4j.rootLogger=INFO, DAILY, stdout
#configure the daily rolling file appender
log4j.appender.DAILY=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DAILY.File=/opt/ZudioFeedbackApplication/log/zudio.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.DAILY.DatePattern='.'yyyy-MM-dd
log4j.appender.DAILY.layout=org.apache.log4j.PatternLayout
log4j.appender.DAILY.layout.conversionPattern=%d{HH:mm} [%p] %c:%L - %m%n
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
The Generated log file will be like.
zudio.log (you can change name and path), and next day it will rename itself with zudio.log.2019-11-19. For your requirement try it by changing DatePattern

Need LOG4J to drop .log from our file name when appending .date extension

Hello we have applications that write to a file called xfiles.log. Log4j does a daily rename to xfiles.log.date, for example xfiles.log.2009-04-12. I would like to remove the '.log' and just have a date extension. For example the new file would be xfiles.2009-04-12. Below is our current log4j setup. Thanks
log4j.rootCategory=INFO, DAILY
log4j.logger.org.springframework=WARN
log4j.appender.DAILY=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DAILY.file=${LOGDIR}/xfiles.log
log4j.appender.DAILY.datePattern='.'yyyy-MM-dd
log4j.appender.DAILY.append=true
log4j.appender.DAILY.layout=org.apache.log4j.PatternLayout
log4j.appender.DAILY.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c %m %n

log4j not writing logs to a file

Log4j is not writing the log files to a file but writing to console. I searched through a lot of resources (i think this question already exists) for it but was unable to find a solution.
Log4j version 1.2.17
Below is my log4j configuration:
log4j.rootLogger=INFO, stdout log4j.rootCategory=INFO, stdout , File
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t
%c{20}:%L - %m%n
log4j.category.org.springframework=ERROR
log4j.category.org.springframework.beans.factory=ERROR
log4j.category.com.mypackage=INFO
log4j.logger.org.springframework=ERROR
log4j.logger.org.hibernate=ERROR
log4j.logger.org.hibernate.persister.entity=ERROR
log4j.appender.File = org.apache.log4j.rolling.RollingFileAppender
log4j.appender.File.File=/tmp/mylog.log
log4j.appender.File.ImmediateFlush=true
log4j.appender.File.threshold=INFO log4j.appender.File.Append=true
log4j.appender.File.MaxFileSize=10MB
log4j.appender.File.MaxBackupIndex=20
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %5p %t
%c{2}:%L - %m%n log4j.appender.File.rollingPolicy =
org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.File.rollingPolicy.FileNamePattern
=/tmp/mylog%d.log
log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %5p %t
%c{2}:%L - %m%n
I have made sure I have permissions to the directory where i am trying to write to.
Can some one please help me out?
Please make the below mentioned changes to your config file.
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.File=/tmp/mylog.log
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.threshold=INFO
log4j.appender.file.Append=true
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=20
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n
log4j.appender.file.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.rollingPolicy.FileNamePattern=/tmp/mylog%d.log
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n
Hope this works fine.

log4j - why am I getting this ludicrous amount of DEBUG even if there's no log4j.properties?

I used to have the following file on /src but it didn't seem to be working. So I took it out (made sure to backup it first) and I am still getting a lot of debug info.
The file is:
# Log levels
# TRACE < DEBUG < INFO < WARN < ERROR < FATAL
log4j.rootLogger=ERROR
# Appender Configuration
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# Pattern to output the caller's file name and line number
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# Rolling File Appender
log4j.appender.R=org.apache.log4j.RollingFileAppender
# Path and file name to store the log file
log4j.appender.rollingFile.File=/home/gtl/workspace/hrm_agent/log/log.out
log4j.appender.rollingFile.MaxFileSize=2MB
# Number of backup files
log4j.appender.R.MaxBackupIndex=10
# Layout for Rolling File Appender
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%
Am I doing something wrong?

create log4j depending on level using .properties file

I have to create new file for each level like:
fatel.log for only FATAL
error.log for only ERROR
warn.log for only WARN etc.
how can i achieve this thing in changing this properties file.
Here is my log4j.properties file:
FILE
# level : OFF,FATAL,ERROR,WARN,INFO,DEBUG,ALL
log4j.rootLogger=DEBUG,CONSOLE,A1
log4j.addivity.org.apache=true
# for console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[INFO] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=C:/hibernateSqlite.log
log4j.appender.A1.Encoding=UTF-8
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n
Though I've never done it, I guess it will be something like:
log4j.appender.AppDebug.filter.DebugFilter=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.AppDebug.filter.DebugFilter.acceptOnMatch=true
log4j.appender.AppDebug.filter.DebugFilter.levelToMatch=DEBUG
The type of the AppDebug appender could be DailyRollingFileAppender, as in your case, with the remaining configuration options along.

Resources