You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2012/04/04 15:06:32 UTC
svn commit: r1309363 [1/2] - in /karaf/trunk: ./
assemblies/features/standard/src/main/feature/ log/ log/command/
log/command/src/main/java/org/apache/karaf/log/
log/command/src/main/java/org/apache/karaf/log/command/
log/command/src/main/java/org/apac...
Author: cschneider
Date: Wed Apr 4 13:06:29 2012
New Revision: 1309363
URL: http://svn.apache.org/viewvc?rev=1309363&view=rev
Log:
KARAF-963 Log modules refactored
Added:
karaf/trunk/log/ (with props)
karaf/trunk/log/command/
- copied from r1309258, karaf/trunk/shell/log/
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/
- copied from r1309258, karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/
karaf/trunk/log/command/src/test/java/org/apache/karaf/log/
karaf/trunk/log/command/src/test/java/org/apache/karaf/log/command/
- copied from r1309258, karaf/trunk/shell/log/src/test/java/org/apache/karaf/shell/log/
karaf/trunk/log/core/
- copied from r1309258, karaf/trunk/management/mbeans/log/
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/
- copied from r1309258, karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/Level.java
- copied, changed from r1309258, karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/Level.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/Log.java
- copied, changed from r1309258, karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LogMBeanImpl.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogEventFormatterImpl.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LruList.java
- copied, changed from r1309258, karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/LruList.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/
- copied from r1309258, karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/layout/
karaf/trunk/log/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
- copied, changed from r1309258, karaf/trunk/management/mbeans/log/src/main/resources/OSGI-INF/blueprint/log-management.xml
karaf/trunk/log/core/src/test/
karaf/trunk/log/core/src/test/java/
karaf/trunk/log/core/src/test/java/org/
karaf/trunk/log/core/src/test/java/org/apache/
karaf/trunk/log/core/src/test/java/org/apache/karaf/
karaf/trunk/log/core/src/test/java/org/apache/karaf/log/
karaf/trunk/log/core/src/test/java/org/apache/karaf/log/core/
karaf/trunk/log/core/src/test/java/org/apache/karaf/log/core/internal/
karaf/trunk/log/core/src/test/java/org/apache/karaf/log/core/internal/SetLogLevelTest.java
- copied, changed from r1309258, karaf/trunk/shell/log/src/test/java/org/apache/karaf/shell/log/SetLogLevelTest.java
karaf/trunk/log/pom.xml
Removed:
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/Level.java
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/LruList.java
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/VmLogAppender.java
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/layout/
karaf/trunk/log/command/src/main/java/org/apache/karaf/shell/
karaf/trunk/log/command/src/test/java/org/apache/karaf/log/command/SetLogLevelTest.java
karaf/trunk/log/command/src/test/java/org/apache/karaf/shell/
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogMBeanImpl.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/management/
karaf/trunk/log/core/src/main/resources/OSGI-INF/blueprint/log-management.xml
karaf/trunk/management/mbeans/log/
karaf/trunk/shell/log/
Modified:
karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml
karaf/trunk/log/command/pom.xml
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/completers/LogLevelCompleter.java
karaf/trunk/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml
karaf/trunk/log/command/src/test/java/org/apache/karaf/log/command/completers/LogLevelCompleterTest.java
karaf/trunk/log/core/pom.xml
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/AbsoluteTimeDateFormat.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/DateTimeDateFormat.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/FormattingInfo.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/ISO8601DateFormat.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternConverter.java
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternParser.java
karaf/trunk/management/mbeans/pom.xml
karaf/trunk/pom.xml
karaf/trunk/shell/pom.xml
Modified: karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml?rev=1309363&r1=1309362&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml (original)
+++ karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml Wed Apr 4 13:06:29 2012
@@ -32,8 +32,8 @@
<bundle start-level="30">mvn:org.apache.karaf.diagnostic/org.apache.karaf.diagnostic.common/${project.version}</bundle>
<bundle start-level="30">mvn:org.apache.karaf.diagnostic/org.apache.karaf.diagnostic.command/${project.version}</bundle>
<bundle start-level="30">mvn:org.apache.karaf.diagnostic/org.apache.karaf.diagnostic.management/${project.version}</bundle>
- <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.log/${project.version}</bundle>
- <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.log/${project.version}</bundle>
+ <bundle start-level="30">mvn:org.apache.karaf.log/org.apache.karaf.log.core/${project.version}</bundle>
+ <bundle start-level="30">mvn:org.apache.karaf.log/org.apache.karaf.log.command/${project.version}</bundle>
<bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.dev/${project.version}</bundle>
<bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.dev/${project.version}</bundle>
<bundle start-level="30">mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.command/${project.version}</bundle>
Propchange: karaf/trunk/log/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Apr 4 13:06:29 2012
@@ -0,0 +1 @@
+target
Modified: karaf/trunk/log/command/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/pom.xml?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/pom.xml (original)
+++ karaf/trunk/log/command/pom.xml Wed Apr 4 13:06:29 2012
@@ -22,16 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>shell</artifactId>
+ <groupId>org.apache.karaf.log</groupId>
+ <artifactId>log</artifactId>
<version>3.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>org.apache.karaf.shell.log</artifactId>
+ <artifactId>org.apache.karaf.log.command</artifactId>
<packaging>bundle</packaging>
- <name>Apache Karaf :: Shell :: Log Commands</name>
- <description>This bundle provides Karaf shell commands to manipulate Log service.</description>
+ <name>Apache Karaf :: Log :: Command</name>
+ <description>Shell commands to manipulate Log service</description>
<properties>
<appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
@@ -39,6 +39,10 @@
<dependencies>
<dependency>
+ <groupId>org.apache.karaf.log</groupId>
+ <artifactId>org.apache.karaf.log.core</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.karaf.shell</groupId>
<artifactId>org.apache.karaf.shell.console</artifactId>
</dependency>
@@ -89,16 +93,9 @@
<configuration>
<instructions>
<Import-Package>
- !${project.artifactId}*,
- org.apache.aries.blueprint,
- org.osgi.service.blueprint.container,
- org.osgi.service.blueprint.reflect,
- org.apache.felix.service.command,
- org.apache.karaf.shell.commands,
- org.apache.karaf.shell.console,
*
</Import-Package>
- <Private-Package>!*</Private-Package>
+ <Private-Package>org.apache.karaf.log.command*</Private-Package>
</instructions>
</configuration>
</plugin>
Modified: karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java (original)
+++ karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java Wed Apr 4 13:06:29 2012
@@ -14,8 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log;
+package org.apache.karaf.log.command;
+import org.apache.karaf.log.core.LogService;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.console.OsgiCommandSupport;
@@ -25,18 +26,14 @@ import org.apache.karaf.shell.console.Os
@Command(scope = "log", name = "clear", description = "Clear log entries.")
public class ClearLog extends OsgiCommandSupport {
- protected LruList events;
-
- public LruList getEvents() {
- return events;
- }
-
- public void setEvents(LruList events) {
- this.events = events;
+ protected LogService logService;
+
+ public ClearLog(LogService logService) {
+ this.logService = logService;
}
-
+
protected Object doExecute() throws Exception {
- events.clear();
+ logService.clearEvents();
return null;
}
Modified: karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java (original)
+++ karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java Wed Apr 4 13:06:29 2012
@@ -14,46 +14,27 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log;
+package org.apache.karaf.log.command;
+import org.apache.karaf.log.core.LogService;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
-import org.ops4j.pax.logging.spi.PaxLoggingEvent;
import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.ops4j.pax.logging.spi.PaxLoggingEvent;
@Command(scope = "log", name = "exception-display", description = "Displays the last occurred exception from the log.")
public class DisplayException extends OsgiCommandSupport {
@Argument(index = 0, name = "logger", description = "The name of the logger. This can be ROOT, ALL, or the name of a logger specified in the org.ops4j.pax.logger.cfg file.", required = false, multiValued = false)
String logger;
+ private final LogService logService;
- protected LruList events;
-
- public LruList getEvents() {
- return events;
+ public DisplayException(LogService logService) {
+ this.logService = logService;
}
-
- public void setEvents(LruList events) {
- this.events = events;
- }
-
+
protected Object doExecute() throws Exception {
- PaxLoggingEvent throwableEvent = null;
- Iterable<PaxLoggingEvent> le = events.getElements(Integer.MAX_VALUE);
- for (PaxLoggingEvent event : le) {
- // if this is an exception, and the log is the same as the requested log,
- // then save this exception and continue iterating from oldest to newest
- if ((event.getThrowableStrRep() != null)
- &&(logger != null)
- &&(checkIfFromRequestedLog(event))) {
- throwableEvent = event;
- // Do not break, as we iterate from the oldest to the newest event
- } else if ((event.getThrowableStrRep() != null)&&(logger == null)) {
- // now check if there has been no log passed in, and if this is an exception
- // then save this exception and continue iterating from oldest to newest
- throwableEvent = event;
- }
- }
+ PaxLoggingEvent throwableEvent = logService.getLastException(logger);
if (throwableEvent != null) {
for (String r : throwableEvent.getThrowableStrRep()) {
System.out.println(r);
@@ -63,8 +44,6 @@ public class DisplayException extends Os
return null;
}
- protected boolean checkIfFromRequestedLog(PaxLoggingEvent event) {
- return (event.getLoggerName().lastIndexOf(logger)>=0) ? true : false;
- }
+
}
Modified: karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java (original)
+++ karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java Wed Apr 4 13:06:29 2012
@@ -14,15 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log;
+package org.apache.karaf.log.command;
import java.io.PrintStream;
+import org.apache.karaf.log.core.LogEventFormatter;
+import org.apache.karaf.log.core.LogService;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.log.layout.PatternConverter;
-import org.apache.karaf.shell.log.layout.PatternParser;
import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.ops4j.pax.logging.spi.PaxLoggingEvent;
@@ -44,102 +44,22 @@ public class DisplayLog extends OsgiComm
@Argument(index = 0, name = "logger", description = "The name of the logger. This can be ROOT, ALL, or the name of a logger specified in the org.ops4j.pax.logger.cfg file.", required = false, multiValued = false)
String logger;
- protected String pattern;
- protected LruList events;
- protected String fatalColor;
- protected String errorColor;
- protected String warnColor;
- protected String infoColor;
- protected String debugColor;
- protected String traceColor;
-
- private static final String FATAL = "fatal";
- private static final String ERROR = "error";
- private static final String WARN = "warn";
- private static final String INFO = "info";
- private static final String DEBUG = "debug";
- private static final String TRACE = "trace";
-
- private static final char FIRST_ESC_CHAR = 27;
- private static final char SECOND_ESC_CHAR = '[';
- private static final char COMMAND_CHAR = 'm';
+ protected final LogService logService;
- public LruList getEvents() {
- return events;
- }
-
- public void setEvents(LruList events) {
- this.events = events;
- }
-
- public String getPattern() {
- return pattern;
- }
-
- public void setPattern(String pattern) {
- this.pattern = pattern;
- }
-
- public String getFatalColor() {
- return fatalColor;
- }
-
- public void setFatalColor(String fatalColor) {
- this.fatalColor = fatalColor;
- }
-
- public String getErrorColor() {
- return errorColor;
- }
-
- public void setErrorColor(String errorColor) {
- this.errorColor = errorColor;
- }
-
- public String getWarnColor() {
- return warnColor;
- }
-
- public void setWarnColor(String warnColor) {
- this.warnColor = warnColor;
- }
-
- public String getInfoColor() {
- return infoColor;
- }
-
- public void setInfoColor(String infoColor) {
- this.infoColor = infoColor;
- }
-
- public String getDebugColor() {
- return debugColor;
- }
-
- public void setDebugColor(String debugColor) {
- this.debugColor = debugColor;
- }
-
- public String getTraceColor() {
- return traceColor;
- }
-
- public void setTraceColor(String traceColor) {
- this.traceColor = traceColor;
+ protected final LogEventFormatter formatter;
+
+ public DisplayLog(LogService logService, LogEventFormatter formatter) {
+ this.logService = logService;
+ this.formatter = formatter;
}
protected Object doExecute() throws Exception {
- final PatternConverter cnv = new PatternParser(overridenPattern != null ? overridenPattern : pattern).parse();
+
final PrintStream out = System.out;
- Iterable<PaxLoggingEvent> le = events.getElements(entries == 0 ? Integer.MAX_VALUE : entries);
+ Iterable<PaxLoggingEvent> le = logService.getEvents(entries == 0 ? Integer.MAX_VALUE : entries);
for (PaxLoggingEvent event : le) {
- if ((logger != null) && (event != null)
- && (checkIfFromRequestedLog(event))) {
- display(cnv, event, out);
- } else if ((event != null) && (logger == null)) {
- display(cnv, event, out);
- }
+ printEvent(out, event);
}
out.println();
return null;
@@ -149,55 +69,14 @@ public class DisplayLog extends OsgiComm
return (event.getLoggerName().lastIndexOf(logger)>=0) ? true : false;
}
- protected void display(PatternConverter cnv, PaxLoggingEvent event, PrintStream stream) {
- String color = getColor(event);
- StringBuffer sb = new StringBuffer();
- sb.setLength(0);
- if (color != null) {
- sb.append(FIRST_ESC_CHAR);
- sb.append(SECOND_ESC_CHAR);
- sb.append(color);
- sb.append(COMMAND_CHAR);
- }
- for (PatternConverter pc = cnv; pc != null; pc = pc.next) {
- pc.format(sb, event);
- }
- if (event.getThrowableStrRep() != null) {
- for (String r : event.getThrowableStrRep()) {
- sb.append(r).append('\n');
- }
- }
- if (color != null) {
- sb.append(FIRST_ESC_CHAR);
- sb.append(SECOND_ESC_CHAR);
- sb.append("0");
- sb.append(COMMAND_CHAR);
- }
- stream.print(sb.toString());
- }
-
- private String getColor(PaxLoggingEvent event) {
- String color = null;
- if (!noColor) {
- String lvl = event.getLevel().toString().toLowerCase();
- if (FATAL.equals(lvl)) {
- color = fatalColor;
- } else if (ERROR.equals(lvl)) {
- color = errorColor;
- } else if (WARN.equals(lvl)) {
- color = warnColor;
- } else if (INFO.equals(lvl)) {
- color = infoColor;
- } else if (DEBUG.equals(lvl)) {
- color = debugColor;
- } else if (TRACE.equals(lvl)) {
- color = traceColor;
- }
- if (color != null && color.length() == 0) {
- color = null;
+ protected void printEvent(final PrintStream out, PaxLoggingEvent event) {
+ if ((logger != null) &&
+ (event != null)&&
+ (checkIfFromRequestedLog(event))) {
+ out.append(formatter.format(event, overridenPattern, noColor));
}
+ else if ((event != null)&&(logger == null)){
+ out.append(formatter.format(event, overridenPattern, noColor));
}
- return color;
}
-
}
Modified: karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java (original)
+++ karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java Wed Apr 4 13:06:29 2012
@@ -14,18 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log;
-
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.Map;
-import java.util.TreeMap;
+package org.apache.karaf.log.command;
+import org.apache.karaf.log.core.LogService;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
import org.apache.karaf.shell.console.OsgiCommandSupport;
/**
@@ -37,83 +30,15 @@ public class GetLogLevel extends OsgiCom
@Argument(index = 0, name = "logger", description = "The name of the logger, ALL or ROOT (default)", required = false, multiValued = false)
String logger;
- static final String CONFIGURATION_PID = "org.ops4j.pax.logging";
- static final String ROOT_LOGGER_PREFIX = "log4j.rootLogger";
- static final String LOGGER_PREFIX = "log4j.logger.";
- static final String ALL_LOGGER = "ALL";
- static final String ROOT_LOGGER = "ROOT";
+ private final LogService logService;
+
+ public GetLogLevel(LogService logService) {
+ this.logService = logService;
+ }
protected Object doExecute() throws Exception {
- ConfigurationAdmin cfgAdmin = getConfigAdmin();
- Configuration cfg = cfgAdmin.getConfiguration(CONFIGURATION_PID, null);
- Dictionary props = cfg.getProperties();
-
- if (ROOT_LOGGER.equalsIgnoreCase(this.logger)) {
- this.logger = null;
- }
- if (ALL_LOGGER.equalsIgnoreCase(logger)) {
- String root = getLevel((String) props.get(ROOT_LOGGER_PREFIX));
- Map<String, String> loggers = new TreeMap<String, String>();
- for (Enumeration e = props.keys(); e.hasMoreElements();) {
- String prop = (String) e.nextElement();
- if (prop.startsWith(LOGGER_PREFIX)) {
- String val = getLevel((String) props.get(prop));
- loggers.put(prop.substring(LOGGER_PREFIX.length()), val);
- }
- }
- System.out.println("ROOT: " + root);
- for (String logger : loggers.keySet()) {
- System.out.println(logger + ": " + loggers.get(logger));
- }
- } else {
- String logger = this.logger;
- String val;
- for (;;) {
- String prop;
- if (logger == null) {
- prop = ROOT_LOGGER_PREFIX;
- } else {
- prop = LOGGER_PREFIX + logger;
- }
- val = (String) props.get(prop);
- val = getLevel(val);
- if (val != null || logger == null) {
- break;
- }
- int idx = logger.lastIndexOf('.');
- if (idx < 0) {
- logger = null;
- } else {
- logger = logger.substring(0, idx);
- }
- }
- String st = "Level: " + val;
- if (logger != this.logger) {
- st += " (inherited from " + (logger != null ? logger : "ROOT") + ")";
- }
- System.out.println(st);
- }
+ System.out.println(logService.getLevelSt(logger));
return null;
}
- protected String getLevel(String prop) {
- if (prop == null) {
- return null;
- } else {
- String val = prop.trim();
- int idx = val.indexOf(",");
- if (idx == 0) {
- val = null;
- } else if (idx > 0) {
- val = val.substring(0, idx);
- }
- return val;
- }
- }
-
- protected ConfigurationAdmin getConfigAdmin() {
- ServiceReference ref = getBundleContext().getServiceReference(ConfigurationAdmin.class.getName());
- return getService(ConfigurationAdmin.class, ref);
- }
-
}
Modified: karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java (original)
+++ karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java Wed Apr 4 13:06:29 2012
@@ -14,35 +14,31 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log;
+package org.apache.karaf.log.command;
import java.io.PrintStream;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
+import org.apache.karaf.log.core.LogEventFormatter;
+import org.apache.karaf.log.core.LogService;
import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.log.layout.PatternConverter;
-import org.apache.karaf.shell.log.layout.PatternParser;
import org.ops4j.pax.logging.spi.PaxAppender;
import org.ops4j.pax.logging.spi.PaxLoggingEvent;
@Command(scope = "log", name = "tail", description = "Continuously display log entries.")
public class LogTail extends DisplayLog {
+ public LogTail(LogService logService, LogEventFormatter formatter) {
+ super(logService, formatter);
+ }
+
protected Object doExecute() throws Exception {
- final PatternConverter cnv = new PatternParser(overridenPattern != null ? overridenPattern : pattern).parse();
final PrintStream out = System.out;
- Iterable<PaxLoggingEvent> le = events.getElements(entries == 0 ? Integer.MAX_VALUE : entries);
+ Iterable<PaxLoggingEvent> le = this.logService.getEvents(entries == 0 ? Integer.MAX_VALUE : entries);
for (PaxLoggingEvent event : le) {
- if ((logger != null) &&
- (event != null)&&
- (checkIfFromRequestedLog(event))) {
- display(cnv, event, out);
- }
- else if ((event != null)&&(logger == null)){
- display(cnv, event, out);
- }
+ printEvent(out, event);
}
// Tail
final BlockingQueue<PaxLoggingEvent> queue = new LinkedBlockingQueue<PaxLoggingEvent>();
@@ -52,22 +48,15 @@ public class LogTail extends DisplayLog
}
};
try {
- events.addAppender(appender);
+ logService.addAppender(appender);
for (;;) {
PaxLoggingEvent event = queue.take();
- if ((logger != null) &&
- (event != null)&&
- (checkIfFromRequestedLog(event))) {
- display(cnv, event, out);
- }
- else if ((event != null)&&(logger == null)){
- display(cnv, event, out);
- }
+ printEvent(out, event);
}
} catch (InterruptedException e) {
// Ignore
} finally {
- events.removeAppender(appender);
+ logService.removeAppender(appender);
}
out.println();
return null;
Modified: karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java (original)
+++ karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java Wed Apr 4 13:06:29 2012
@@ -14,17 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log;
-
-import java.io.IOException;
-import java.util.Dictionary;
+package org.apache.karaf.log.command;
+import org.apache.karaf.log.core.LogService;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
/**
* Set the log level for a given logger
@@ -38,88 +33,15 @@ public class SetLogLevel extends OsgiCom
@Argument(index = 1, name = "logger", description = "Logger name or ROOT (default)", required = false, multiValued = false)
String logger;
- static final String CONFIGURATION_PID = "org.ops4j.pax.logging";
- static final String ROOT_LOGGER_PREFIX = "log4j.rootLogger";
- static final String LOGGER_PREFIX = "log4j.logger.";
- static final String ROOT_LOGGER = "ROOT";
-
- protected Object doExecute() throws Exception {
- if (ROOT_LOGGER.equalsIgnoreCase(this.logger)) {
- this.logger = null;
- }
-
- // make sure both uppercase and lowercase levels are supported
- level = level.toUpperCase();
-
-
-
- try {
- Level.valueOf(level);
- } catch (IllegalArgumentException e) {
- System.err.println("level must be set to TRACE, DEBUG, INFO, WARN or ERROR (or DEFAULT to unset it)");
- return null;
- }
-
- if (Level.isDefault(level) && logger == null) {
- System.err.println("Can not unset the ROOT logger");
- return null;
- }
-
- Configuration cfg = getConfiguration();
- Dictionary props = cfg.getProperties();
-
- String logger = this.logger;
- String val;
- String prop;
- if (logger == null) {
- prop = ROOT_LOGGER_PREFIX;
- } else {
- prop = LOGGER_PREFIX + logger;
- }
- val = (String) props.get(prop);
- if (Level.isDefault(level)) {
- if (val != null) {
- val = val.trim();
- int idx = val.indexOf(",");
- if (idx < 0) {
- val = null;
- } else {
- val = val.substring(idx);
- }
- }
- } else {
- if (val == null) {
- val = level;
- } else {
- val = val.trim();
- int idx = val.indexOf(",");
- if (idx < 0) {
- val = level;
- } else {
- val = level + val.substring(idx);
- }
- }
- }
- if (val == null) {
- props.remove(prop);
- } else {
- props.put(prop, val);
- }
- cfg.update(props);
-
- return null;
- }
-
+ private LogService logService;
-
- protected Configuration getConfiguration() throws IOException {
- Configuration cfg = getConfigAdmin().getConfiguration(CONFIGURATION_PID, null);
- return cfg;
+ public SetLogLevel(LogService logService) {
+ this.logService = logService;
}
- protected ConfigurationAdmin getConfigAdmin() {
- ServiceReference ref = getBundleContext().getServiceReference(ConfigurationAdmin.class.getName());
- return getService(ConfigurationAdmin.class, ref);
+ protected Object doExecute() throws Exception {
+ logService.setLevelSt(logger, level);
+ return null;
}
}
Modified: karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/completers/LogLevelCompleter.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/completers/LogLevelCompleter.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/completers/LogLevelCompleter.java (original)
+++ karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/completers/LogLevelCompleter.java Wed Apr 4 13:06:29 2012
@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log.completers;
+package org.apache.karaf.log.command.completers;
import java.util.List;
+import org.apache.karaf.log.core.Level;
import org.apache.karaf.shell.console.Completer;
import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.log.Level;
/**
* {@link Completer} implementation for completing log levels
@@ -31,8 +31,8 @@ public class LogLevelCompleter extends S
super(Level.strings());
}
- @Override @SuppressWarnings("unchecked")
- public int complete(String buffer, int cursor, List candidates) {
+ @Override
+ public int complete(String buffer, int cursor, @SuppressWarnings("rawtypes") List candidates) {
if (buffer == null) {
return super.complete(null, cursor, candidates);
} else {
Modified: karaf/trunk/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml (original)
+++ karaf/trunk/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml Wed Apr 4 13:06:29 2012
@@ -21,82 +21,48 @@
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
default-activation="lazy">
- <!-- TODO: use dynamic CM config -->
-
- <cm:property-placeholder persistent-id="org.apache.karaf.log" update-strategy="reload">
- <cm:default-properties>
- <cm:property name="size" value="500"/>
- <cm:property name="pattern" value="%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n"/>
- <cm:property name="fatalColor" value="31"/>
- <cm:property name="errorColor" value="31"/>
- <cm:property name="warnColor" value="35"/>
- <cm:property name="infoColor" value="36"/>
- <cm:property name="debugColor" value="39"/>
- <cm:property name="traceColor" value="39"/>
- </cm:default-properties>
- </cm:property-placeholder>
-
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
<command>
- <action class="org.apache.karaf.shell.log.DisplayLog">
- <property name="events" ref="events"/>
- <property name="pattern" value="${pattern}"/>
- <property name="fatalColor" value="${fatalColor}"/>
- <property name="errorColor" value="${errorColor}"/>
- <property name="warnColor" value="${warnColor}"/>
- <property name="infoColor" value="${infoColor}"/>
- <property name="debugColor" value="${debugColor}"/>
- <property name="traceColor" value="${traceColor}"/>
+ <action class="org.apache.karaf.log.command.DisplayLog">
+ <argument ref="logService" />
+ <argument ref="formatter"/>
</action>
</command>
<command>
- <action class="org.apache.karaf.shell.log.DisplayException">
- <property name="events" ref="events"/>
+ <action class="org.apache.karaf.log.command.DisplayException">
+ <argument ref="logService" />
</action>
</command>
<command>
- <action class="org.apache.karaf.shell.log.ClearLog">
- <property name="events" ref="events"/>
+ <action class="org.apache.karaf.log.command.ClearLog">
+ <argument ref="logService" />
</action>
</command>
<command>
- <action class="org.apache.karaf.shell.log.GetLogLevel" />
+ <action class="org.apache.karaf.log.command.GetLogLevel">
+ <argument ref="logService" />
+ </action>
</command>
<command>
- <action class="org.apache.karaf.shell.log.SetLogLevel" />
+ <action class="org.apache.karaf.log.command.SetLogLevel" >
+ <argument ref="logService" />
+ </action>
<completers>
<ref component-id="logLevelCompleter"/>
<null/>
</completers>
</command>
<command>
- <action class="org.apache.karaf.shell.log.LogTail">
- <property name="events" ref="events"/>
- <property name="pattern" value="${pattern}"/>
- <property name="fatalColor" value="${fatalColor}"/>
- <property name="errorColor" value="${errorColor}"/>
- <property name="warnColor" value="${warnColor}"/>
- <property name="infoColor" value="${infoColor}"/>
- <property name="debugColor" value="${debugColor}"/>
- <property name="traceColor" value="${traceColor}"/>
+ <action class="org.apache.karaf.log.command.LogTail">
+ <argument ref="logService" />
+ <argument ref="formatter"/>
</action>
</command>
</command-bundle>
-
- <bean id="vmLogAppender" class="org.apache.karaf.shell.log.VmLogAppender">
- <property name="events" ref="events"/>
- </bean>
-
- <bean id="events" class="org.apache.karaf.shell.log.LruList">
- <argument value="${size}"/>
- </bean>
- <bean id="logLevelCompleter" class="org.apache.karaf.shell.log.completers.LogLevelCompleter"/>
+ <reference id="formatter" interface="org.apache.karaf.log.core.LogEventFormatter"/>
+ <reference id="logService" interface="org.apache.karaf.log.core.LogService"/>
- <service ref="vmLogAppender" interface="org.ops4j.pax.logging.spi.PaxAppender">
- <service-properties>
- <entry key="org.ops4j.pax.logging.appender.name" value="VmLogAppender"/>
- </service-properties>
- </service>
+ <bean id="logLevelCompleter" class="org.apache.karaf.log.command.completers.LogLevelCompleter"/>
</blueprint>
Modified: karaf/trunk/log/command/src/test/java/org/apache/karaf/log/command/completers/LogLevelCompleterTest.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/command/src/test/java/org/apache/karaf/log/command/completers/LogLevelCompleterTest.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/command/src/test/java/org/apache/karaf/log/command/completers/LogLevelCompleterTest.java (original)
+++ karaf/trunk/log/command/src/test/java/org/apache/karaf/log/command/completers/LogLevelCompleterTest.java Wed Apr 4 13:06:29 2012
@@ -14,15 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log.completers;
+package org.apache.karaf.log.command.completers;
import java.util.LinkedList;
import java.util.List;
-import org.apache.karaf.shell.log.Level;
-
import junit.framework.TestCase;
+import org.apache.karaf.log.core.Level;
+
/**
* Test cases for {@link LogLevelCompleter}
*/
Modified: karaf/trunk/log/core/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/pom.xml?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/core/pom.xml (original)
+++ karaf/trunk/log/core/pom.xml Wed Apr 4 13:06:29 2012
@@ -22,16 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.karaf.management.mbeans</groupId>
- <artifactId>mbeans</artifactId>
+ <groupId>org.apache.karaf.log</groupId>
+ <artifactId>log</artifactId>
<version>3.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>org.apache.karaf.management.mbeans.log</artifactId>
+ <artifactId>org.apache.karaf.log.core</artifactId>
<packaging>bundle</packaging>
- <name>Apache Karaf :: Management :: MBeans :: Log</name>
- <description>The log mbean bundle provides a Log JMX MBean which allow you to manipulate the Karaf log layer.</description>
+ <name>Apache Karaf :: Log :: Core</name>
+ <description>Core Seervices and JMX MBean to manipulate the Karaf log layer</description>
<properties>
<appendedResourcesDirectory>${basedir}/../../../etc/appended-resources/</appendedResourcesDirectory>
@@ -84,21 +84,11 @@
<configuration>
<instructions>
<Export-Package>
- org.apache.karaf.management.mbeans.log;version=${project.version}
+ org.apache.karaf.log.core
</Export-Package>
- <Import-Package>
- !org.apache.karaf.management.mbeans.log,
- javax.management,
- javax.management.loading,
- org.apache.karaf.management;version=${project.version},
- org.apache.aries.blueprint,
- org.osgi.service.blueprint.container,
- org.osgi.service.blueprint.reflect,
- *
- </Import-Package>
<Private-Package>
- org.apache.karaf.management.mbeans.log.internal,
- !*
+ org.apache.karaf.log.core.internal,
+ org.apache.karaf.log.core.internal.layout
</Private-Package>
</instructions>
</configuration>
Copied: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/Level.java (from r1309258, karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/Level.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/Level.java?p2=karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/Level.java&p1=karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/Level.java&r1=1309258&r2=1309363&rev=1309363&view=diff
==============================================================================
--- karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/Level.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/Level.java Wed Apr 4 13:06:29 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log;
+package org.apache.karaf.log.core;
/**
* Enumeration of available log levels for the log:set command and
Added: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java?rev=1309363&view=auto
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java (added)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java Wed Apr 4 13:06:29 2012
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.log.core;
+
+import org.ops4j.pax.logging.spi.PaxLoggingEvent;
+
+public interface LogEventFormatter {
+
+ public abstract String format(PaxLoggingEvent event, String overridenPattern, boolean noColor);
+
+}
Modified: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java Wed Apr 4 13:06:29 2012
@@ -14,19 +14,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.management.mbeans.log;
+package org.apache.karaf.log.core;
-import java.util.List;
/**
* Log MBean.
*/
public interface LogMBean {
- String getLevel() throws Exception;
- String getLevel(String logger) throws Exception;
+ String getLevel();
+ String getLevel(String logger);
- void setLevel(String level) throws Exception;
- void setLevel(String level, String logger) throws Exception;
+ void setLevel(String level);
+ void setLevel(String logger, String level);
}
Added: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java?rev=1309363&view=auto
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java (added)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java Wed Apr 4 13:06:29 2012
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.log.core;
+
+import org.ops4j.pax.logging.spi.PaxAppender;
+import org.ops4j.pax.logging.spi.PaxLoggingEvent;
+
+public interface LogService {
+ Level getLevel();
+ void setLevel(Level level);
+ Level getLevel(String logger);
+ void setLevel(String logger, Level level);
+
+ String getLevelSt();
+ String getLevelSt(String logger);
+
+ void setLevelSt(String level);
+ void setLevelSt(String logger, String level);
+
+ void clearEvents();
+ Iterable<PaxLoggingEvent> getEvents();
+ Iterable<PaxLoggingEvent> getEvents(int maxNum);
+ PaxLoggingEvent getLastException(String logger);
+ void addAppender(PaxAppender appender);
+ void removeAppender(PaxAppender appender);
+}
Copied: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/Log.java (from r1309258, karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LogMBeanImpl.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/Log.java?p2=karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/Log.java&p1=karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LogMBeanImpl.java&r1=1309258&r2=1309363&rev=1309363&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/log/src/main/java/org/apache/karaf/management/mbeans/log/internal/LogMBeanImpl.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/Log.java Wed Apr 4 13:06:29 2012
@@ -14,180 +14,44 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.management.mbeans.log.internal;
-
-import org.apache.karaf.management.mbeans.log.LogMBean;
-import org.ops4j.pax.logging.spi.PaxLoggingEvent;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
+package org.apache.karaf.log.core.internal;
import javax.management.NotCompliantMBeanException;
import javax.management.StandardMBean;
-import java.io.IOException;
-import java.util.*;
+
+import org.apache.karaf.log.core.LogMBean;
+import org.apache.karaf.log.core.LogService;
/**
* Implementation of the Log MBean.
*/
-public class LogMBeanImpl extends StandardMBean implements LogMBean {
+public class Log extends StandardMBean implements LogMBean {
- static final String CONFIGURATION_PID = "org.ops4j.pax.logging";
- static final String ROOT_LOGGER_PREFIX = "log4j.rootLogger";
- static final String LOGGER_PREFIX = "log4j.logger.";
- static final String ROOT_LOGGER = "ROOT";
- private BundleContext bundleContext;
+ private final LogService logService;
- public LogMBeanImpl() throws NotCompliantMBeanException {
+ public Log(LogService logService) throws NotCompliantMBeanException {
super(LogMBean.class);
+ this.logService = logService;
}
- public String getLevel() throws Exception {
- return getLevel(null);
- }
-
- public String getLevel(String logger) throws Exception {
- ConfigurationAdmin cfgAdmin = getConfigAdmin();
- Configuration cfg = cfgAdmin.getConfiguration(CONFIGURATION_PID, null);
- Dictionary props = cfg.getProperties();
-
- if (ROOT_LOGGER.equalsIgnoreCase(logger)) {
- logger = null;
- }
-
- String val;
- for (; ; ) {
- String prop;
- if (logger == null) {
- prop = ROOT_LOGGER_PREFIX;
- } else {
- prop = LOGGER_PREFIX + logger;
- }
- val = (String) props.get(prop);
- val = getLevelFromProperty(val);
- if (val != null || logger == null) {
- break;
- }
- int idx = logger.lastIndexOf('.');
- if (idx < 0) {
- logger = null;
- } else {
- logger = logger.substring(0, idx);
- }
- }
- String st = "Level: " + val;
- return st;
- }
-
- public void setLevel(String level) throws Exception {
- setLevel(level, null);
- }
-
- public void setLevel(String level, String logger) throws Exception {
- if (ROOT_LOGGER.equalsIgnoreCase(logger)) {
- logger = null;
- }
-
- // make sure both uppercase and lowercase levels are supported
- level = level.toUpperCase();
-
- if (!level.equals("TRACE") && !level.equals("DEBUG") && !level.equals("INFO")
- && !level.equals("WARN") && !level.equals("ERROR") && !level.equals("DEFAULT")) {
- throw new IllegalArgumentException("level must be set to TRACE, DEBUG, INFO, WARN or ERROR (or DEFAULT to unset it)");
- }
-
- Configuration cfg = getConfiguration();
- Dictionary props = cfg.getProperties();
-
- String val;
- String prop;
- if (logger == null) {
- prop = ROOT_LOGGER_PREFIX;
- } else {
- prop = LOGGER_PREFIX + logger;
- }
- val = (String) props.get(prop);
- if (level.equals("DEFAULT")) {
- if (val != null) {
- val = val.trim();
- int idx = val.indexOf(",");
- if (idx < 0) {
- val = null;
- } else {
- val = val.substring(idx);
- }
- }
- } else {
- if (val == null) {
- val = level;
- } else {
- val = val.trim();
- int idx = val.indexOf(",");
- if (idx < 0) {
- val = level;
- } else {
- val = level + val.substring(idx);
- }
- }
- }
- if (val == null) {
- props.remove(prop);
- } else {
- props.put(prop, val);
- }
- cfg.update(props);
- }
-
- private boolean checkIfFromRequestedLog(PaxLoggingEvent event, String logger) {
- return (event.getLoggerName().lastIndexOf(logger) >= 0) ? true : false;
- }
-
- private String render(PaxLoggingEvent event) {
- StringBuffer sb = new StringBuffer();
- sb.setLength(0);
- if (event.getThrowableStrRep() != null) {
- for (String r : event.getThrowableStrRep()) {
- sb.append(r).append('\n');
- }
- }
- return sb.toString();
- }
-
- private String getLevelFromProperty(String prop) {
- if (prop == null) {
- return null;
- } else {
- String val = prop.trim();
- int idx = val.indexOf(",");
- if (idx == 0) {
- val = null;
- } else if (idx > 0) {
- val = val.substring(0, idx);
- }
- return val;
- }
- }
-
- public BundleContext getBundleContext() {
- return this.bundleContext;
+ @Override
+ public String getLevel() {
+ return logService.getLevelSt();
}
- public void setBundleContext(BundleContext bundleContext) {
- this.bundleContext = bundleContext;
+ @Override
+ public String getLevel(String logger) {
+ return logService.getLevelSt(logger);
}
- protected Configuration getConfiguration() throws IOException {
- Configuration cfg = getConfigAdmin().getConfiguration(CONFIGURATION_PID, null);
- return cfg;
+ @Override
+ public void setLevel(String level) {
+ this.logService.setLevelSt(level);
}
- protected ConfigurationAdmin getConfigAdmin() {
- ServiceReference ref = bundleContext.getServiceReference(ConfigurationAdmin.class.getName());
- if (ref != null) {
- return (ConfigurationAdmin) bundleContext.getService(ref);
- }
- return null;
+ @Override
+ public void setLevel(String logger, String level) {
+ this.logService.setLevelSt(logger, level);
}
}
Added: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogEventFormatterImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogEventFormatterImpl.java?rev=1309363&view=auto
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogEventFormatterImpl.java (added)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogEventFormatterImpl.java Wed Apr 4 13:06:29 2012
@@ -0,0 +1,157 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.log.core.internal;
+
+import org.apache.karaf.log.core.LogEventFormatter;
+import org.apache.karaf.log.core.internal.layout.PatternConverter;
+import org.apache.karaf.log.core.internal.layout.PatternParser;
+import org.ops4j.pax.logging.spi.PaxLoggingEvent;
+
+public class LogEventFormatterImpl implements LogEventFormatter {
+
+ protected String pattern;
+ protected String fatalColor;
+ protected String errorColor;
+ protected String warnColor;
+ protected String infoColor;
+ protected String debugColor;
+ protected String traceColor;
+
+ private static final String FATAL = "fatal";
+ private static final String ERROR = "error";
+ private static final String WARN = "warn";
+ private static final String INFO = "info";
+ private static final String DEBUG = "debug";
+ private static final String TRACE = "trace";
+
+ private static final char FIRST_ESC_CHAR = 27;
+ private static final char SECOND_ESC_CHAR = '[';
+ private static final char COMMAND_CHAR = 'm';
+
+ public String getPattern() {
+ return pattern;
+ }
+
+ public void setPattern(String pattern) {
+ this.pattern = pattern;
+ }
+
+ public String getFatalColor() {
+ return fatalColor;
+ }
+
+ public void setFatalColor(String fatalColor) {
+ this.fatalColor = fatalColor;
+ }
+
+ public String getErrorColor() {
+ return errorColor;
+ }
+
+ public void setErrorColor(String errorColor) {
+ this.errorColor = errorColor;
+ }
+
+ public String getWarnColor() {
+ return warnColor;
+ }
+
+ public void setWarnColor(String warnColor) {
+ this.warnColor = warnColor;
+ }
+
+ public String getInfoColor() {
+ return infoColor;
+ }
+
+ public void setInfoColor(String infoColor) {
+ this.infoColor = infoColor;
+ }
+
+ public String getDebugColor() {
+ return debugColor;
+ }
+
+ public void setDebugColor(String debugColor) {
+ this.debugColor = debugColor;
+ }
+
+ public String getTraceColor() {
+ return traceColor;
+ }
+
+ public void setTraceColor(String traceColor) {
+ this.traceColor = traceColor;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.karaf.log.core.internal.LogEventFormatter#format(org.ops4j.pax.logging.spi.PaxLoggingEvent, java.lang.String, boolean)
+ */
+ @Override
+ public String format(PaxLoggingEvent event, String overridenPattern, boolean noColor) {
+ final PatternConverter cnv = new PatternParser(overridenPattern != null ? overridenPattern : pattern).parse();
+ String color = getColor(event, noColor);
+ StringBuffer sb = new StringBuffer();
+ sb.setLength(0);
+ if (color != null) {
+ sb.append(FIRST_ESC_CHAR);
+ sb.append(SECOND_ESC_CHAR);
+ sb.append(color);
+ sb.append(COMMAND_CHAR);
+ }
+ for (PatternConverter pc = cnv; pc != null; pc = pc.next) {
+ pc.format(sb, event);
+ }
+ if (event.getThrowableStrRep() != null) {
+ for (String r : event.getThrowableStrRep()) {
+ sb.append(r).append('\n');
+ }
+ }
+ if (color != null) {
+ sb.append(FIRST_ESC_CHAR);
+ sb.append(SECOND_ESC_CHAR);
+ sb.append("0");
+ sb.append(COMMAND_CHAR);
+ }
+ return sb.toString();
+ }
+
+ private String getColor(PaxLoggingEvent event, boolean noColor) {
+ String color = null;
+ if (!noColor) {
+ String lvl = event.getLevel().toString().toLowerCase();
+ if (FATAL.equals(lvl)) {
+ color = fatalColor;
+ } else if (ERROR.equals(lvl)) {
+ color = errorColor;
+ } else if (WARN.equals(lvl)) {
+ color = warnColor;
+ } else if (INFO.equals(lvl)) {
+ color = infoColor;
+ } else if (DEBUG.equals(lvl)) {
+ color = debugColor;
+ } else if (TRACE.equals(lvl)) {
+ color = traceColor;
+ }
+ if (color != null && color.length() == 0) {
+ color = null;
+ }
+ }
+ return color;
+ }
+
+}
Added: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java?rev=1309363&view=auto
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java (added)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java Wed Apr 4 13:06:29 2012
@@ -0,0 +1,250 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.log.core.internal;
+
+import java.io.IOException;
+import java.util.Dictionary;
+
+import org.apache.karaf.log.core.Level;
+import org.apache.karaf.log.core.LogService;
+import org.ops4j.pax.logging.spi.PaxAppender;
+import org.ops4j.pax.logging.spi.PaxLoggingEvent;
+import org.osgi.service.cm.Configuration;
+import org.osgi.service.cm.ConfigurationAdmin;
+
+public class LogServiceImpl implements LogService {
+ static final String CONFIGURATION_PID = "org.ops4j.pax.logging";
+ static final String ROOT_LOGGER_PREFIX = "log4j.rootLogger";
+ static final String LOGGER_PREFIX = "log4j.logger.";
+ static final String ROOT_LOGGER = "ROOT";
+
+ private final ConfigurationAdmin configAdmin;
+ private final LruList events;
+
+ public LogServiceImpl(ConfigurationAdmin configAdmin, LruList events) {
+ this.configAdmin = configAdmin;
+ this.events = events;
+ }
+
+ public Level getLevel() {
+ return getLevel(null);
+ }
+
+ public Level getLevel(String logger) {
+ Configuration cfg;
+ try {
+ cfg = configAdmin.getConfiguration(CONFIGURATION_PID, null);
+ } catch (IOException e) {
+ throw new RuntimeException("Error retrieving Log information from config admin", e);
+ }
+ @SuppressWarnings("rawtypes")
+ Dictionary props = cfg.getProperties();
+
+ if (ROOT_LOGGER.equalsIgnoreCase(logger)) {
+ logger = null;
+ }
+
+ String val;
+ for (; ; ) {
+ String prop;
+ if (logger == null) {
+ prop = ROOT_LOGGER_PREFIX;
+ } else {
+ prop = LOGGER_PREFIX + logger;
+ }
+ val = (String) props.get(prop);
+ val = getLevelFromProperty(val);
+ if (val != null || logger == null) {
+ break;
+ }
+ int idx = logger.lastIndexOf('.');
+ if (idx < 0) {
+ logger = null;
+ } else {
+ logger = logger.substring(0, idx);
+ }
+ }
+ return Level.valueOf(val);
+ }
+
+ public void setLevel(Level level) {
+ setLevel(null, level);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void setLevel(String logger, Level logLevel) {
+ if (ROOT_LOGGER.equalsIgnoreCase(logger)) {
+ logger = null;
+ }
+
+ if (logLevel == Level.DEFAULT && logger == null) {
+ throw new RuntimeException("Can not unset the ROOT logger");
+ }
+
+ Configuration cfg = getConfiguration();
+ @SuppressWarnings("rawtypes")
+ Dictionary props = cfg.getProperties();
+
+ String level = logLevel.toString();
+
+ String val;
+ String prop;
+ if (logger == null) {
+ prop = ROOT_LOGGER_PREFIX;
+ } else {
+ prop = LOGGER_PREFIX + logger;
+ }
+ val = (String) props.get(prop);
+ if (level.equals("DEFAULT")) {
+ if (val != null) {
+ val = val.trim();
+ int idx = val.indexOf(",");
+ if (idx < 0) {
+ val = null;
+ } else {
+ val = val.substring(idx);
+ }
+ }
+ } else {
+ if (val == null) {
+ val = level;
+ } else {
+ val = val.trim();
+ int idx = val.indexOf(",");
+ if (idx < 0) {
+ val = level;
+ } else {
+ val = level + val.substring(idx);
+ }
+ }
+ }
+ if (val == null) {
+ props.remove(prop);
+ } else {
+ props.put(prop, val);
+ }
+ try {
+ cfg.update(props);
+ } catch (IOException e) {
+ throw new RuntimeException("Error writing log config to config admin", e);
+ }
+ }
+
+ private boolean checkIfFromRequestedLog(PaxLoggingEvent event, String logger) {
+ return (event.getLoggerName().lastIndexOf(logger) >= 0) ? true : false;
+ }
+
+ private String getLevelFromProperty(String prop) {
+ if (prop == null) {
+ return null;
+ } else {
+ String val = prop.trim();
+ int idx = val.indexOf(",");
+ if (idx == 0) {
+ val = null;
+ } else if (idx > 0) {
+ val = val.substring(0, idx);
+ }
+ return val;
+ }
+ }
+
+ private Configuration getConfiguration() {
+ try {
+ return configAdmin.getConfiguration(CONFIGURATION_PID, null);
+ } catch (IOException e) {
+ throw new RuntimeException("Error retrieving Log information from config admin", e);
+ }
+ }
+
+ @Override
+ public Iterable<PaxLoggingEvent> getEvents() {
+ return events.getElements();
+ }
+
+ @Override
+ public Iterable<PaxLoggingEvent> getEvents(int maxNum) {
+ return events.getElements(maxNum);
+ }
+
+ @Override
+ public void clearEvents() {
+ events.clear();
+ }
+
+ @Override
+ public PaxLoggingEvent getLastException(String logger) {
+ PaxLoggingEvent throwableEvent = null;
+ Iterable<PaxLoggingEvent> le = getEvents();
+ for (PaxLoggingEvent event : le) {
+ // if this is an exception, and the log is the same as the requested log,
+ // then save this exception and continue iterating from oldest to newest
+ if ((event.getThrowableStrRep() != null)
+ &&(logger != null)
+ &&(checkIfFromRequestedLog(event, logger))) {
+ throwableEvent = event;
+ // Do not break, as we iterate from the oldest to the newest event
+ } else if ((event.getThrowableStrRep() != null)&&(logger == null)) {
+ // now check if there has been no log passed in, and if this is an exception
+ // then save this exception and continue iterating from oldest to newest
+ throwableEvent = event;
+ }
+ }
+
+ return throwableEvent;
+ }
+
+ @Override
+ public void addAppender(PaxAppender appender) {
+ events.addAppender(appender);
+ }
+
+ @Override
+ public void removeAppender(PaxAppender appender) {
+ events.removeAppender(appender);
+ }
+
+ @Override
+ public String getLevelSt() {
+ return getLevel().toString();
+ }
+
+ @Override
+ public String getLevelSt(String logger) {
+ return getLevel(logger).toString();
+ }
+
+ @Override
+ public void setLevelSt(String level) {
+ setLevel(convertToLevel(level));
+ }
+
+ @Override
+ public void setLevelSt(String logger, String level) {
+ setLevel(logger, convertToLevel(level));
+ }
+
+ public Level convertToLevel(String level) {
+ level = level.toUpperCase();
+ Level res = Level.valueOf(level);
+ if (res == null) {
+ throw new IllegalArgumentException("level must be set to TRACE, DEBUG, INFO, WARN or ERROR (or DEFAULT to unset it)");
+ }
+ return res;
+ }
+
+}
Copied: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LruList.java (from r1309258, karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/LruList.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LruList.java?p2=karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LruList.java&p1=karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/LruList.java&r1=1309258&r2=1309363&rev=1309363&view=diff
==============================================================================
--- karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/LruList.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LruList.java Wed Apr 4 13:06:29 2012
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.karaf.shell.log;
+package org.apache.karaf.log.core.internal;
import java.util.ArrayList;
import java.util.Arrays;
@@ -28,7 +28,7 @@ import org.ops4j.pax.logging.spi.PaxLogg
/**
* A list that only keep the last N elements added
*/
-public class LruList {
+public class LruList implements PaxAppender {
private PaxLoggingEvent[] elements;
private transient int start = 0;
@@ -115,5 +115,10 @@ public class LruList {
public synchronized void removeAppender(PaxAppender appender) {
this.appenders.remove(appender);
}
+
+ public void doAppend(PaxLoggingEvent event) {
+ event.getProperties(); // ensure MDC properties are copied
+ add(event);
+ }
}
Modified: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/AbsoluteTimeDateFormat.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/AbsoluteTimeDateFormat.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/AbsoluteTimeDateFormat.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/AbsoluteTimeDateFormat.java Wed Apr 4 13:06:29 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log.layout;
+package org.apache.karaf.log.core.internal.layout;
import java.text.DateFormat;
import java.text.FieldPosition;
Modified: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/DateTimeDateFormat.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/DateTimeDateFormat.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/DateTimeDateFormat.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/DateTimeDateFormat.java Wed Apr 4 13:06:29 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log.layout;
+package org.apache.karaf.log.core.internal.layout;
import java.text.DateFormatSymbols;
import java.text.FieldPosition;
Modified: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/FormattingInfo.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/FormattingInfo.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/FormattingInfo.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/FormattingInfo.java Wed Apr 4 13:06:29 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log.layout;
+package org.apache.karaf.log.core.internal.layout;
/**
Modified: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/ISO8601DateFormat.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/ISO8601DateFormat.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/ISO8601DateFormat.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/ISO8601DateFormat.java Wed Apr 4 13:06:29 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log.layout;
+package org.apache.karaf.log.core.internal.layout;
import java.text.FieldPosition;
import java.text.ParsePosition;
Modified: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternConverter.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternConverter.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternConverter.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternConverter.java Wed Apr 4 13:06:29 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log.layout;
+package org.apache.karaf.log.core.internal.layout;
import org.ops4j.pax.logging.spi.PaxLoggingEvent;
Modified: karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternParser.java
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternParser.java?rev=1309363&r1=1309258&r2=1309363&view=diff
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternParser.java (original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/layout/PatternParser.java Wed Apr 4 13:06:29 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.shell.log.layout;
+package org.apache.karaf.log.core.internal.layout;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
Copied: karaf/trunk/log/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml (from r1309258, karaf/trunk/management/mbeans/log/src/main/resources/OSGI-INF/blueprint/log-management.xml)
URL: http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml?p2=karaf/trunk/log/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml&p1=karaf/trunk/management/mbeans/log/src/main/resources/OSGI-INF/blueprint/log-management.xml&r1=1309258&r2=1309363&rev=1309363&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/log/src/main/resources/OSGI-INF/blueprint/log-management.xml (original)
+++ karaf/trunk/log/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml Wed Apr 4 13:06:29 2012
@@ -12,25 +12,64 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
+ xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
+
+ <ext:property-placeholder placeholder-prefix="$(" placeholder-suffix=")"/>
+
+ <cm:property-placeholder persistent-id="org.apache.karaf.log" update-strategy="reload">
+ <cm:default-properties>
+ <cm:property name="size" value="500"/>
+ <cm:property name="pattern" value="%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n"/>
+ <cm:property name="fatalColor" value="31"/>
+ <cm:property name="errorColor" value="31"/>
+ <cm:property name="warnColor" value="35"/>
+ <cm:property name="infoColor" value="36"/>
+ <cm:property name="debugColor" value="39"/>
+ <cm:property name="traceColor" value="39"/>
+ </cm:default-properties>
+ </cm:property-placeholder>
+
+ <reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin"/>
+
+ <bean id="events" class="org.apache.karaf.log.core.internal.LruList">
+ <argument value="${size}"/>
+ </bean>
- <!-- Reference to the MBean Server -->
- <reference id="mbeanServer" interface="javax.management.MBeanServer">
- <reference-listener ref="mbeanRegistrer" bind-method="registerMBeanServer" unbind-method="unregisterMBeanServer"/>
- </reference>
+ <service ref="events" interface="org.ops4j.pax.logging.spi.PaxAppender">
+ <service-properties>
+ <entry key="org.ops4j.pax.logging.appender.name" value="VmLogAppender"/>
+ </service-properties>
+ </service>
+
+ <bean id="logService" class="org.apache.karaf.log.core.internal.LogServiceImpl">
+ <argument ref="configAdmin"/>
+ <argument ref="events" />
+ </bean>
+
+ <service ref="logService" interface="org.apache.karaf.log.core.LogService"/>
- <!-- Log MBean -->
- <bean id="logMBean" class="org.apache.karaf.management.mbeans.log.internal.LogMBeanImpl">
- <property name="bundleContext" ref="blueprintBundleContext"/>
+ <bean id="logMBean" class="org.apache.karaf.log.core.internal.Log">
+ <argument ref="logService"/>
</bean>
- <!-- Register MBean in the MBean Server -->
- <bean id="mbeanRegistrer" class="org.apache.karaf.management.MBeanRegistrer">
- <property name="mbeans">
- <map>
- <entry value="org.apache.karaf:type=log,name=${karaf.name}" key-ref="logMBean"/>
- </map>
- </property>
+ <service ref="logMBean" auto-export="interfaces">
+ <service-properties>
+ <entry key="jmx.objectname" value="org.apache.karaf:type=log,name=$(karaf.name)"/>
+ </service-properties>
+ </service>
+
+ <bean id="formatter" class="org.apache.karaf.log.core.internal.LogEventFormatterImpl">
+ <property name="pattern" value="${pattern}"/>
+ <property name="fatalColor" value="${fatalColor}"/>
+ <property name="errorColor" value="${errorColor}"/>
+ <property name="warnColor" value="${warnColor}"/>
+ <property name="infoColor" value="${infoColor}"/>
+ <property name="debugColor" value="${debugColor}"/>
+ <property name="traceColor" value="${traceColor}"/>
</bean>
+
+ <service ref="formatter" interface="org.apache.karaf.log.core.LogEventFormatter"/>
</blueprint>
\ No newline at end of file