hnviet
hnviet

Reputation: 1757

Linux-Java logs rotating using log4j or logrotate.d

I have a Spring project using log4j on Linux (Debian, Ubuntu and RHEL). Now I would like to implement best practice logs rotation for the log4j generated logs.

I have previously used logrotate.d for other non-java components and it worked great for me. I needed rotating by size/time and compressing the old logs and logrotate could do all of this.

I am new to log4j and now wonder how should I configure log rotation.

  1. Should I use log4j only for logging and logrotate for rotation?
  2. Use only log4j for rotation?
  3. Use a mix of both?

What is your experience? What is the best practice?

Upvotes: 12

Views: 6887

Answers (2)

asmaier
asmaier

Reputation: 11746

There is no equivalent for logrotate on Windows (see https://serverfault.com/questions/358172/equivalent-of-logrotate-for-windows). So if you ever plan to run your Java application on Windows, log4j is the only option you have for configuring log rotation.

Upvotes: 0

Steven Mastandrea
Steven Mastandrea

Reputation: 2772

In general, I usually use log4j for logging and initial rotations, and I use logrotate for compression and archiving. The reason is that I try and keep the logging rules, including which file(s) to log, size, naming convention, etc. to be associated with the application. I then try and put the sysadmin type configurations, like how many to keep, when to compress, when to move to backup directory in the logrotate.

Upvotes: 6

Related Questions