You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/03/07 13:29:41 UTC
svn commit: r634637 - in /incubator/sling/trunk/osgi/log/src/main:
java/org/apache/sling/osgi/log/LogbackManager.java
resources/OSGI-INF/metatype/metatype.properties
resources/OSGI-INF/metatype/metatype.xml
Author: fmeschbe
Date: Fri Mar 7 04:29:40 2008
New Revision: 634637
URL: http://svn.apache.org/viewvc?rev=634637&view=rev
Log:
SLING-314 support configuration of number of rotated log files and the
maximum log file size
Modified:
incubator/sling/trunk/osgi/log/src/main/java/org/apache/sling/osgi/log/LogbackManager.java
incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.properties
incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.xml
Modified: incubator/sling/trunk/osgi/log/src/main/java/org/apache/sling/osgi/log/LogbackManager.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/osgi/log/src/main/java/org/apache/sling/osgi/log/LogbackManager.java?rev=634637&r1=634636&r2=634637&view=diff
==============================================================================
--- incubator/sling/trunk/osgi/log/src/main/java/org/apache/sling/osgi/log/LogbackManager.java (original)
+++ incubator/sling/trunk/osgi/log/src/main/java/org/apache/sling/osgi/log/LogbackManager.java Fri Mar 7 04:29:40 2008
@@ -43,6 +43,7 @@
import ch.qos.logback.core.rolling.FixedWindowRollingPolicy;
import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy;
+import ch.qos.logback.core.util.FileSize;
/**
* The <code>LogbackManager</code> manages the loggers used by the LogService
@@ -66,12 +67,20 @@
public static final String LOG_FILE = "org.apache.sling.osgi.log.file";
+ public static final String LOG_FILE_NUMBER = "org.apache.sling.osgi.log.file.number";
+
+ public static final String LOG_FILE_SIZE = "org.apache.sling.osgi.log.file.size";
+
public static final String LOG_PATTERN = "org.apache.sling.osgi.log.pattern";
public static final String LOG_CONFIG_URL = "org.apache.sling.osgi.log.url";
public static final String LOG_PATTERN_DEFAULT = "%d{dd.MM.yyyy HH:mm:ss} *%-5p* %c{1}: %m%n";
+ public static final int LOG_FILE_NUMBER_DEFAULT = 5;
+
+ public static final String LOG_FILE_SIZE_DEFAULT = "10MB";
+
/**
* default log category - set during init()
*/
@@ -284,15 +293,39 @@
logDir.mkdirs();
}
- // keep 4 old log files
+ // get number of files and ensure minimum and default
+ Object fileNumObj = context.getProperty(LOG_FILE_NUMBER);
+ int fileNum = -1;
+ if (fileNumObj instanceof Number) {
+ fileNum = ((Number) fileNumObj).intValue();
+ } else if (fileNumObj != null) {
+ try {
+ fileNum = Integer.parseInt(fileNumObj.toString());
+ } catch (NumberFormatException nfe) {
+ // don't care
+ }
+ }
+ if (fileNum <= 0) {
+ fileNum = LOG_FILE_NUMBER_DEFAULT;
+ }
+
+ // keep the number old log files
FixedWindowRollingPolicy rolling = new FixedWindowRollingPolicy();
rolling.setFileNamePattern(logFileName + ".%i");
- rolling.setMaxIndex(4);
+ rolling.setMinIndex(0);
+ rolling.setMaxIndex(fileNum - 1);
rolling.setContext(loggerContext);
+ // get the log file size
+ Object fileSizeObj = context.getProperty(LOG_FILE_SIZE);
+ String fileSize = (fileSizeObj != null) ? fileSizeObj.toString() : null;
+ if (fileSize == null || fileSize.length() == 0) {
+ fileSize = LOG_FILE_SIZE_DEFAULT;
+ }
+
// switch log file after 1MB
SizeBasedTriggeringPolicy trigger = new SizeBasedTriggeringPolicy();
- trigger.setMaxFileSize("1mb");
+ trigger.setMaxFileSize(fileSize);
trigger.setContext(loggerContext);
// define the default appender
Modified: incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.properties
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=634637&r1=634636&r2=634637&view=diff
==============================================================================
--- incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.properties (original)
+++ incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.properties Fri Mar 7 04:29:40 2008
@@ -26,6 +26,16 @@
log.file.description = The name and path of the log file. If this is empty, \
logging goes to standard output (the console). If this path is relative it \
is resolved below ${sling.home}.
+log.file.number.name = Number of Log Files
+log.file.number.description = The number of log files to keep. When the size of \
+ the log file reaches the configured maximum (see Maximum Log File Size), \
+ the log file is copied and a new log file is created. This setting specifies \
+ how many generations (incl. the active log file) should be kept. This is a \
+ positive numeric value. The default value is 5.
+log.file.size.name=Maximum Log File Size
+log.file.size.description The maximum size of the log file. If this size is \
+ reached the log file is copied and a new log file is created. This size \
+ may be specified with size indicators KB, MB and GB. The default is 10MB.
log.pattern.name = Message Pattern
log.pattern.description = Message Pattern for the Pattern Layout. See \
http://logback.qos.ch/manual/layouts.html#ClassicPatternLayout for more \
@@ -34,4 +44,4 @@
log.url.description = URL to a Logback configuration file. This URL must be \
accessible to the Sling server, which is important in the case of file: URLs. \
If this property is set and the configuration file succeeds configuring \
- Logback, the other configuration properties are actually ignored.
+ Logback, the other configuration properties are actually ignored.
\ No newline at end of file
Modified: incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.xml
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.xml?rev=634637&r1=634636&r2=634637&view=diff
==============================================================================
--- incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.xml (original)
+++ incubator/sling/trunk/osgi/log/src/main/resources/OSGI-INF/metatype/metatype.xml Fri Mar 7 04:29:40 2008
@@ -33,6 +33,12 @@
<metatype:AD id="org.apache.sling.osgi.log.file" type="String"
default="logs/error.log" name="%log.file.name"
description="%log.file.description" />
+ <metatype:AD id="org.apache.sling.osgi.log.file.number" type="Integer"
+ default="5" name="%log.file.number.name"
+ description="%log.file.number.description" />
+ <metatype:AD id="org.apache.sling.osgi.log.file.size" type="String"
+ default="10mb" name="%log.file.size.name"
+ description="%log.file.size.description" />
<metatype:AD id="org.apache.sling.osgi.log.pattern" type="String"
default="%d{dd.MM.yyyy HH:mm:ss} *%-5p* %c{1}: %m%n"
name="%log.pattern.name"