logback-dev
Threads by month
- ----- 2025 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
March 2007
- 7 participants
- 175 discussions

svn commit: r1414 - logback/trunk/logback-core/src/test/java/ch/qos/logback/core/util
by noreply.seb@qos.ch 08 Mar '07
by noreply.seb@qos.ch 08 Mar '07
08 Mar '07
Author: seb
Date: Thu Mar 8 15:35:19 2007
New Revision: 1414
Modified:
logback/trunk/logback-core/src/test/java/ch/qos/logback/core/util/PropertySetterTest.java
Log:
Added a test case about bug 52
Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/util/PropertySetterTest.java
==============================================================================
--- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/util/PropertySetterTest.java (original)
+++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/util/PropertySetterTest.java Thu Mar 8 15:35:19 2007
@@ -122,6 +122,14 @@
setter.setProperty("fs", "2 kb");
assertEquals(2*1024, house.getFs().getSize());
}
+
+ public void testEnum() {
+ //test case reproducing bug #52
+ House house = new House();
+ PropertySetter setter = new PropertySetter(house);
+ setter.setProperty("houseColor", "BLUE");
+ assertEquals(HouseColor.BLUE, house.getHouseColor());
+ }
}
class House {
@@ -133,6 +141,7 @@
SwimmingPool pool;
Duration duration;
FileSize fs;
+ HouseColor houseColor;
List<String> adjectiveList = new ArrayList<String>();
List<Window> windowList = new ArrayList<Window>();
@@ -209,6 +218,14 @@
public void setFs(FileSize fs) {
this.fs = fs;
}
+
+ public void setHouseColor(String color) {
+ this.houseColor = HouseColor.valueOf(color);
+ }
+
+ public HouseColor getHouseColor() {
+ return houseColor;
+ }
}
class Door {
@@ -224,3 +241,7 @@
int width;
int depth;
}
+
+enum HouseColor {
+ WHITE, BLUE
+}
1
0

svn commit: r1413 - logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model
by noreply.seb@qos.ch 07 Mar '07
by noreply.seb@qos.ch 07 Mar '07
07 Mar '07
Author: seb
Date: Wed Mar 7 18:20:32 2007
New Revision: 1413
Modified:
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
Log:
More realistic rate of sending events.
This config has been tested with 60'000 messages in the buffer and works fine.
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java Wed Mar 7 18:20:32 2007
@@ -113,6 +113,13 @@
}
private void sendEventsFromIndex(final int index) {
+ /**
+ * TODO Improve this
+ *
+ * This voodoo-like method of sending events without
+ * crashing the console should be replaced by something else.
+ */
+
scheduledExecutorService = Executors.newScheduledThreadPool(2);
Runnable runnnable = new Runnable() {
@@ -130,6 +137,6 @@
};
scheduledExecutorService.scheduleAtFixedRate(runnnable,
- 0, 1, TimeUnit.MICROSECONDS);
+ 0, 500, TimeUnit.MICROSECONDS);
}
}
1
0

svn commit: r1412 - in logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse: model reciever
by noreply.seb@qos.ch 07 Mar '07
by noreply.seb@qos.ch 07 Mar '07
07 Mar '07
Author: seb
Date: Wed Mar 7 15:40:58 2007
New Revision: 1412
Modified:
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/reciever/SocketNode.java
Log:
Let's be sure that the thread name is the good one
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java Wed Mar 7 15:40:58 2007
@@ -39,8 +39,6 @@
}
public void addLoggingEvent(LoggingEvent event) {
- //trick to keep the original thread name
- event.getThreadName();
loggingEventList.add(event);
listSizeCheck();
if (sendingEvents) {
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/reciever/SocketNode.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/reciever/SocketNode.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/reciever/SocketNode.java Wed Mar 7 15:40:58 2007
@@ -39,6 +39,8 @@
while (true) {
// read an event from the wire
event = (LoggingEvent) ois.readObject();
+ //trick to keep the original thread name
+ event.getThreadName();
//add it to the manager's LoggingEvent list
LoggingEventManager.getManager().addLoggingEvent(event);
}
1
0

svn commit: r1411 - in logbackPDE/trunk/plugins/ConsolePlugin: . src/main/java/ch/qos/logback/eclipse/model
by noreply.seb@qos.ch 07 Mar '07
by noreply.seb@qos.ch 07 Mar '07
07 Mar '07
Author: seb
Date: Wed Mar 7 15:26:13 2007
New Revision: 1411
Modified:
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
logbackPDE/trunk/plugins/ConsolePlugin/todo.txt
Log:
Refactored sending of events
Updated todo list
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java Wed Mar 7 15:26:13 2007
@@ -95,24 +95,7 @@
return;
}
- scheduledExecutorService = Executors.newScheduledThreadPool(2);
-
- Runnable runnnable = new Runnable() {
-
- int tmpIndex = lastSentIndex + 1;
-
- public void run() {
- if (tmpIndex >= loggingEventList.size()) {
- scheduledExecutorService.shutdownNow();
- }
- LoggingEvent event = loggingEventList.get(tmpIndex);
- sendEvent(event);
- tmpIndex++;
- }
- };
-
- scheduledExecutorService.scheduleAtFixedRate(runnnable,
- 0, 1, TimeUnit.MILLISECONDS);
+ sendEventsFromIndex(lastSentIndex + 1);
}
private void listSizeCheck() {
@@ -123,12 +106,21 @@
}
public void reSendAllEvents() {
+ sendEventsFromIndex(0);
+ }
+
+ public void clearEventList() {
+ loggingEventList.clear();
+ lastSentIndex = 0;
+ }
+
+ private void sendEventsFromIndex(final int index) {
scheduledExecutorService = Executors.newScheduledThreadPool(2);
-
+
Runnable runnnable = new Runnable() {
- int tmpIndex = 0;
-
+ int tmpIndex = index;
+
public void run() {
if (tmpIndex >= loggingEventList.size()) {
scheduledExecutorService.shutdownNow();
@@ -140,11 +132,6 @@
};
scheduledExecutorService.scheduleAtFixedRate(runnnable,
- 0, 1, TimeUnit.MILLISECONDS);
- }
-
- public void clearEventList() {
- loggingEventList.clear();
- lastSentIndex = 0;
+ 0, 1, TimeUnit.MICROSECONDS);
}
}
Modified: logbackPDE/trunk/plugins/ConsolePlugin/todo.txt
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/todo.txt (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/todo.txt Wed Mar 7 15:26:13 2007
@@ -8,13 +8,11 @@
Color certains lines. Based on keywords and colors?
-Autoscroll use with double-buffer and stop the filling of the console when auto scroll = off
-
-Use Cyclic Buffer to allow the user to change the pattern used to display the events. When the pattern
-is changed, we clear the console and re-enter the events contained in the buffer with the new pattern.
-
DONE:
Allow the user to change the socket's port
Make the viewer always display the latest lines added
Filter logs: threshold
-Save Preferences between sessions
\ No newline at end of file
+Save Preferences between sessions
+Use Cyclic Buffer to allow the user to change the pattern used to display the events. When the pattern
+is changed, we clear the console and re-enter the events contained in the buffer with the new pattern.
+Autoscroll use with double-buffer and stop the filling of the console when auto scroll = off
1
0

svn commit: r1410 - in logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse: model views
by noreply.seb@qos.ch 07 Mar '07
by noreply.seb@qos.ch 07 Mar '07
07 Mar '07
Author: seb
Date: Wed Mar 7 14:53:45 2007
New Revision: 1410
Modified:
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackView.java
Log:
We now can change the pattern layout and re-fill the console with updated pattern
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java Wed Mar 7 14:53:45 2007
@@ -8,7 +8,6 @@
import java.util.concurrent.TimeUnit;
import ch.qos.logback.classic.spi.LoggingEvent;
-import ch.qos.logback.core.helpers.CyclicBuffer;
/**
* This class manages the logging events that are recieved by the plugin.
@@ -21,14 +20,16 @@
private static LoggingEventManager manager;
- private CyclicBuffer<LoggingEvent> cyclicBuffer;
+ private static final int MAX_SIZE = 100000;
+ private static final int MIN_SIZE = 50000;
+ private List<LoggingEvent> loggingEventList = new ArrayList<LoggingEvent>();
private boolean sendingEvents = true;
ScheduledExecutorService scheduledExecutorService;
private List<LoggingEventManagerListener> listeners = new ArrayList<LoggingEventManagerListener>();
-
+ private int lastSentIndex;
+
private LoggingEventManager() {
- cyclicBuffer = new CyclicBuffer<LoggingEvent>(5000);
}
public static LoggingEventManager getManager() {
@@ -37,23 +38,25 @@
return manager;
}
- public static void shutdown() {
- if (manager != null) {
- manager = null;
- }
- }
-
public void addLoggingEvent(LoggingEvent event) {
+ //trick to keep the original thread name
+ event.getThreadName();
+ loggingEventList.add(event);
+ listSizeCheck();
if (sendingEvents) {
- fireFavoritesChanged(new LoggingEvent[] { event }, NONE);
- } else {
- cyclicBuffer.add(event);
+ sendEvent(event);
}
}
+
+ private void sendEvent(LoggingEvent event) {
+ fireFavoritesChanged(new LoggingEvent[] { event }, NONE);
+ lastSentIndex = loggingEventList.size()-1;
+ }
/**
* Listener management
*/
+
public void addLoggingEventManagerListener(LoggingEventManagerListener listener) {
if (!listeners.contains(listener))
listeners.add(listener);
@@ -71,17 +74,24 @@
}
}
+ /**
+ * Buffer management
+ */
+
public boolean isSendingEvents() {
return sendingEvents;
}
public void toggleSendEvents() {
sendingEvents = !sendingEvents;
- emptyBuffer();
+ if (sendingEvents) {
+ emptyBuffer();
+ }
}
private void emptyBuffer() {
- if (cyclicBuffer.length() == 0) {
+ if (lastSentIndex == loggingEventList.size()-1
+ || loggingEventList.isEmpty()) {
return;
}
@@ -89,14 +99,52 @@
Runnable runnnable = new Runnable() {
+ int tmpIndex = lastSentIndex + 1;
+
public void run() {
- LoggingEvent event = cyclicBuffer.get();
- addLoggingEvent(event);
+ if (tmpIndex >= loggingEventList.size()) {
+ scheduledExecutorService.shutdownNow();
+ }
+ LoggingEvent event = loggingEventList.get(tmpIndex);
+ sendEvent(event);
+ tmpIndex++;
}
};
scheduledExecutorService.scheduleAtFixedRate(runnnable,
0, 1, TimeUnit.MILLISECONDS);
+ }
+
+ private void listSizeCheck() {
+ if (loggingEventList.size() > MAX_SIZE) {
+ List sub = loggingEventList.subList(0, MIN_SIZE);
+ loggingEventList.removeAll(sub);
+ }
+ }
+
+ public void reSendAllEvents() {
+ scheduledExecutorService = Executors.newScheduledThreadPool(2);
+ Runnable runnnable = new Runnable() {
+
+ int tmpIndex = 0;
+
+ public void run() {
+ if (tmpIndex >= loggingEventList.size()) {
+ scheduledExecutorService.shutdownNow();
+ }
+ LoggingEvent event = loggingEventList.get(tmpIndex);
+ sendEvent(event);
+ tmpIndex++;
+ }
+ };
+
+ scheduledExecutorService.scheduleAtFixedRate(runnnable,
+ 0, 1, TimeUnit.MILLISECONDS);
+ }
+
+ public void clearEventList() {
+ loggingEventList.clear();
+ lastSentIndex = 0;
}
}
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackView.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackView.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackView.java Wed Mar 7 14:53:45 2007
@@ -101,6 +101,7 @@
public void run() {
super.run();
myConsole.clearConsole();
+ LoggingEventManager.getManager().clearEventList();
}
};
clearConsoleAction.setText("Clear console");
@@ -112,13 +113,12 @@
@Override
public void run() {
super.run();
- //provider.toggleAutoScroll();
LoggingEventManager.getManager().toggleSendEvents();
updateText();
}
private void updateText() {
- if (/*provider.isAutoScroll()*/ LoggingEventManager.getManager().isSendingEvents()) {
+ if (LoggingEventManager.getManager().isSendingEvents()) {
this.setText("Turn off auto scroll");
this.setToolTipText("Turn off auto scroll");
} else {
@@ -168,6 +168,8 @@
public void updatePattern(String pattern) {
labelProvider.updatePattern(pattern);
+ myConsole.clearConsole();
+ LoggingEventManager.getManager().reSendAllEvents();
}
public void updateConsoleHighWaterMark(int highWaterMark) {
1
0

svn commit: r1409 - in logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse: model views
by noreply.seb@qos.ch 07 Mar '07
by noreply.seb@qos.ch 07 Mar '07
07 Mar '07
Author: seb
Date: Wed Mar 7 10:06:02 2007
New Revision: 1409
Added:
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackViewerConfiguration.java
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/MyHyperlinkPresenter.java
Modified:
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/JavaLinkDetector.java
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackView.java
logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LoggingEventContentProvider.java
Log:
Working cyclic buffer :)
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/model/LoggingEventManager.java Wed Mar 7 10:06:02 2007
@@ -1,11 +1,14 @@
package ch.qos.logback.eclipse.model;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Iterator;
import java.util.List;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
import ch.qos.logback.classic.spi.LoggingEvent;
+import ch.qos.logback.core.helpers.CyclicBuffer;
/**
* This class manages the logging events that are recieved by the plugin.
@@ -18,9 +21,16 @@
private static LoggingEventManager manager;
- private Collection<LoggingEvent> loggingEventCollection = new ArrayList<LoggingEvent>();
+ private CyclicBuffer<LoggingEvent> cyclicBuffer;
+ private boolean sendingEvents = true;
+ ScheduledExecutorService scheduledExecutorService;
+
private List<LoggingEventManagerListener> listeners = new ArrayList<LoggingEventManagerListener>();
+ private LoggingEventManager() {
+ cyclicBuffer = new CyclicBuffer<LoggingEvent>(5000);
+ }
+
public static LoggingEventManager getManager() {
if (manager == null)
manager = new LoggingEventManager();
@@ -33,14 +43,12 @@
}
}
- public LoggingEvent[] getLoggingEvents() {
- return (LoggingEvent[]) loggingEventCollection.toArray(new LoggingEvent[loggingEventCollection
- .size()]);
- }
-
public void addLoggingEvent(LoggingEvent event) {
- loggingEventCollection.add(event);
- fireFavoritesChanged(new LoggingEvent[] { event }, NONE);
+ if (sendingEvents) {
+ fireFavoritesChanged(new LoggingEvent[] { event }, NONE);
+ } else {
+ cyclicBuffer.add(event);
+ }
}
/**
@@ -57,7 +65,38 @@
private void fireFavoritesChanged(LoggingEvent[] itemsAdded, LoggingEvent[] itemsRemoved) {
LoggingEventManagerEvent event = new LoggingEventManagerEvent(this, itemsAdded, itemsRemoved);
- for (Iterator iter = listeners.iterator(); iter.hasNext();)
- ((LoggingEventManagerListener) iter.next()).loggingEventsChanged(event);
+ Iterator<LoggingEventManagerListener> it = listeners.iterator();
+ while(it.hasNext()) {
+ (it.next()).loggingEventsChanged(event);
+ }
+ }
+
+ public boolean isSendingEvents() {
+ return sendingEvents;
+ }
+
+ public void toggleSendEvents() {
+ sendingEvents = !sendingEvents;
+ emptyBuffer();
+ }
+
+ private void emptyBuffer() {
+ if (cyclicBuffer.length() == 0) {
+ return;
+ }
+
+ scheduledExecutorService = Executors.newScheduledThreadPool(2);
+
+ Runnable runnnable = new Runnable() {
+
+ public void run() {
+ LoggingEvent event = cyclicBuffer.get();
+ addLoggingEvent(event);
+ }
+ };
+
+ scheduledExecutorService.scheduleAtFixedRate(runnnable,
+ 0, 1, TimeUnit.MILLISECONDS);
+
}
}
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/JavaLinkDetector.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/JavaLinkDetector.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/JavaLinkDetector.java Wed Mar 7 10:06:02 2007
@@ -4,6 +4,7 @@
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.Region;
import org.eclipse.jface.text.hyperlink.IHyperlink;
import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
@@ -32,47 +33,49 @@
} catch (BadLocationException ex) {
return null;
}
-
+
text = text.trim();
-
+
if (text.startsWith("at ")) {
text = text.substring(3);
}
-
+
int indexSeparator = text.indexOf(':');
if (indexSeparator == -1) {
return null;
}
int lineNumber = -1;
- int indexEndOfLineNumber = indexOfNextNonDigit(text.substring(indexSeparator+1));
+ int indexEndOfLineNumber = indexOfNextNonDigit(text.substring(indexSeparator + 1));
if (indexEndOfLineNumber > 0) {
- String lineNumberStr = text.substring(indexSeparator+1, indexSeparator+indexEndOfLineNumber+1);
+ String lineNumberStr = text.substring(indexSeparator + 1, indexSeparator
+ + indexEndOfLineNumber + 1);
lineNumber = Integer.parseInt(lineNumberStr);
} else {
return null;
}
-
-
+
int indexOfParenthesis = text.indexOf("(");
-
+
if (indexOfParenthesis == -1) {
return null;
}
-
+
text = text.substring(0, indexOfParenthesis);
int indexOfLastPoint = text.lastIndexOf(".");
- String method = text.substring(indexOfLastPoint+1, indexOfParenthesis);
+ String method = text.substring(indexOfLastPoint + 1, indexOfParenthesis);
String className = text.substring(0, indexOfLastPoint);
-
+
if (lineNumber != -1) {
- JavaFileHyperLink link = new JavaFileHyperLink(className, method, lineNumber, region);
+ Region subRegion = new Region(lineInfo.getOffset() + indexOfParenthesis, indexSeparator
+ - indexOfParenthesis);
+ JavaFileHyperLink link = new JavaFileHyperLink(className, method, lineNumber, subRegion);
return new IHyperlink[] { link };
}
return null;
}
-
+
private int indexOfNextNonDigit(String text) {
int length = text.length();
for (int i = 0; i < length; i++) {
@@ -80,8 +83,7 @@
if (!Character.isDigit(c)) {
return i;
}
- }
+ }
return -1;
}
-
}
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackView.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackView.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackView.java Wed Mar 7 10:06:02 2007
@@ -3,14 +3,7 @@
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.text.hyperlink.DefaultHyperlinkPresenter;
-import org.eclipse.jface.text.hyperlink.HyperlinkManager;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.URLHyperlinkDetector;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.ISharedImages;
@@ -65,18 +58,12 @@
viewer = new TextConsoleViewer(parent, myConsole);
viewer.setEditable(false);
+
- Display disp = Display.getDefault();
- Color blue = new Color(disp, new RGB(0,0,255) );
- DefaultHyperlinkPresenter presenter = new DefaultHyperlinkPresenter(blue);
- HyperlinkManager manager = new HyperlinkManager(HyperlinkManager.FIRST);
- manager.install(viewer, presenter, new IHyperlinkDetector[]{new URLHyperlinkDetector(),
- new JavaLinkDetector()}, 0);
+ viewer.configure(new LogbackViewerConfiguration());
+ viewer.setDocument(viewer.getDocument());
-// viewer.setHyperlinkDetectors(new IHyperlinkDetector[]{new URLHyperlinkDetector(),
-// new JavaLinkDetector()}, SWT.NONE);
-
provider = new LoggingEventContentProvider(myConsole, viewer);
labelProvider = new LoggingEventLabelProvider();
@@ -87,7 +74,6 @@
provider.setLabelProvider(labelProvider);
-
LoggingEventManager.getManager().addLoggingEventManagerListener(provider);
makeActions();
@@ -126,12 +112,13 @@
@Override
public void run() {
super.run();
- provider.toggleAutoScroll();
+ //provider.toggleAutoScroll();
+ LoggingEventManager.getManager().toggleSendEvents();
updateText();
}
private void updateText() {
- if (provider.isAutoScroll()) {
+ if (/*provider.isAutoScroll()*/ LoggingEventManager.getManager().isSendingEvents()) {
this.setText("Turn off auto scroll");
this.setToolTipText("Turn off auto scroll");
} else {
Added: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackViewerConfiguration.java
==============================================================================
--- (empty file)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LogbackViewerConfiguration.java Wed Mar 7 10:06:02 2007
@@ -0,0 +1,39 @@
+package ch.qos.logback.eclipse.views;
+
+import org.eclipse.jface.text.hyperlink.DefaultHyperlinkPresenter;
+import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
+import org.eclipse.jface.text.hyperlink.IHyperlinkPresenter;
+import org.eclipse.jface.text.hyperlink.URLHyperlinkDetector;
+import org.eclipse.jface.text.presentation.IPresentationReconciler;
+import org.eclipse.jface.text.presentation.PresentationReconciler;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.jface.text.source.SourceViewerConfiguration;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.RGB;
+
+public class LogbackViewerConfiguration extends SourceViewerConfiguration {
+
+ PresentationReconciler recon = new PresentationReconciler();
+ DefaultHyperlinkPresenter pres = new DefaultHyperlinkPresenter(new RGB(0, 0, 255));
+
+ @Override
+ public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) {
+ return new IHyperlinkDetector[] { new URLHyperlinkDetector(), new JavaLinkDetector() };
+ }
+
+ @Override
+ public IHyperlinkPresenter getHyperlinkPresenter(ISourceViewer sourceViewer) {
+ return pres;
+ }
+
+ @Override
+ public int getHyperlinkStateMask(ISourceViewer sourceViewer) {
+ return SWT.NONE;
+ }
+
+ @Override
+ public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
+ return recon;
+ }
+
+}
Modified: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LoggingEventContentProvider.java
==============================================================================
--- logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LoggingEventContentProvider.java (original)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/LoggingEventContentProvider.java Wed Mar 7 10:06:02 2007
@@ -14,7 +14,6 @@
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.LoggingEvent;
-import ch.qos.logback.core.helpers.CyclicBuffer;
import ch.qos.logback.eclipse.PluginLogger;
import ch.qos.logback.eclipse.model.EventFilter;
import ch.qos.logback.eclipse.model.LoggingEventManagerEvent;
@@ -30,21 +29,19 @@
private MessageConsoleStream redStream;
private MessageConsoleStream blackStream;
private TextConsoleViewer viewer;
-
- private CyclicBuffer<LoggingEvent> cyclicBuffer;
+ //private MessageConsole console;
private Color cachedRed;
private Color cachedBlack;
private LabelProvider labelProvider;
- private boolean autoScroll = true;
public LoggingEventContentProvider(MessageConsole console, TextConsoleViewer viewer) {
Display display = Display.getCurrent();
cachedRed = new Color(display, 255, 0, 0);
cachedBlack = new Color(display, 0, 0, 0);
this.viewer = viewer;
- this.cyclicBuffer = new CyclicBuffer<LoggingEvent>(4000);
+ //this.console = console;
redStream = console.newMessageStream();
redStream.setColor(cachedRed);
@@ -52,7 +49,7 @@
blackStream.setColor(cachedBlack);
}
- WorkbenchJob revealJob = new WorkbenchJob("Reveal End of Document") {
+ WorkbenchJob revealJob = new WorkbenchJob("Reveal End of Document") {
public IStatus runInUIThread(IProgressMonitor monitor) {
StyledText textWidget = viewer.getTextWidget();
if (textWidget != null) {
@@ -75,28 +72,25 @@
}
public void loggingEventsChanged(final LoggingEventManagerEvent event) {
-
- if (autoScroll) {
- updateViewer(event);
- } else {
- LoggingEvent le = (LoggingEvent) event.getItemsAdded()[0];
- cyclicBuffer.add(le);
- }
+ updateViewer(event);
}
private void updateViewer(final LoggingEventManagerEvent event) {
LoggingEvent le = (LoggingEvent) event.getItemsAdded()[0];
+ if (le == null) {
+ return;
+ }
+
try {
flushStreams();
-
+
writeEvent(le);
} catch (Exception e) {
PluginLogger.logError(e);
}
- if (autoScroll) {
- revealJob.schedule(50);
- }
+
+ revealJob.schedule(50);
}
private void flushStreams() {
@@ -108,37 +102,11 @@
}
}
- public void emptyCyclicBuffer() {
-
- int max = 100;
-
- int i = 0;
-
- LoggingEvent le = (LoggingEvent) cyclicBuffer.get();
- while (le != null) {
- if (i++ >= max) {
- try {
- if (i % 100 == 0) {
-// IOConsolePartitioner idp = (IOConsolePartitioner)redStream.getConsole().getDocument().getDocumentPartitioner();
-// idp.clearBuffer();
- System.out.println("100 more done: " + i);
- }
- } catch (Exception e) {
-
- }
- }
-
- writeEvent(le);
-
- le = (LoggingEvent) cyclicBuffer.get();
- }
- }
-
private void writeEvent(LoggingEvent le) {
if (!EventFilter.filter(le)) {
return;
}
-
+
if (le.getLevel().isGreaterOrEqual(Level.WARN)) {
redStream.println(labelProvider.getText(le));
} else {
@@ -149,26 +117,4 @@
public void setLabelProvider(LabelProvider provider) {
this.labelProvider = provider;
}
-
- public void setAutoScroll(boolean autoScroll) {
- this.autoScroll = autoScroll;
- }
-
- public boolean isAutoScroll() {
- return autoScroll;
- }
-
- public void toggleAutoScroll() {
- autoScroll = !autoScroll;
-
- if (!autoScroll) {
- // if autoScroll is turned off
- // we clear the buffer first.
- cyclicBuffer.clear();
- } else {
- // if it is turned on
- // we empty the buffer
- emptyCyclicBuffer();
- }
- }
}
Added: logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/MyHyperlinkPresenter.java
==============================================================================
--- (empty file)
+++ logbackPDE/trunk/plugins/ConsolePlugin/src/main/java/ch/qos/logback/eclipse/views/MyHyperlinkPresenter.java Wed Mar 7 10:06:02 2007
@@ -0,0 +1,38 @@
+package ch.qos.logback.eclipse.views;
+
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.eclipse.jface.text.hyperlink.IHyperlinkPresenter;
+
+public class MyHyperlinkPresenter implements IHyperlinkPresenter {
+
+ private ITextViewer viewer;
+
+ public boolean canShowMultipleHyperlinks() {
+ return false;
+ }
+
+ public void hideHyperlinks() {
+ }
+
+ public void install(ITextViewer textViewer) {
+ this.viewer = textViewer;
+ }
+
+ public void showHyperlinks(IHyperlink[] hyperlinks) throws IllegalArgumentException {
+ if (hyperlinks == null || hyperlinks.length == 0) {
+ return;
+ }
+
+ for (int i = 0; i < hyperlinks.length; i++) {
+ showLink(hyperlinks[i]);
+ }
+ }
+
+ private void showLink(IHyperlink link) {
+ }
+
+ public void uninstall() {
+ }
+
+}
1
0

svn commit: r1408 - in logback/trunk/logback-site/src/site/pages: . css manual templates
by noreply.ceki@qos.ch 06 Mar '07
by noreply.ceki@qos.ch 06 Mar '07
06 Mar '07
Author: ceki
Date: Tue Mar 6 20:11:05 2007
New Revision: 1408
Added:
logback/trunk/logback-site/src/site/pages/dependencies.html
Modified:
logback/trunk/logback-site/src/site/pages/css/site.css
logback/trunk/logback-site/src/site/pages/demo.html
logback/trunk/logback-site/src/site/pages/documentation.html
logback/trunk/logback-site/src/site/pages/index.html
logback/trunk/logback-site/src/site/pages/manual/appenders.html
logback/trunk/logback-site/src/site/pages/manual/architecture.html
logback/trunk/logback-site/src/site/pages/manual/contextSelector.html
logback/trunk/logback-site/src/site/pages/manual/filters.html
logback/trunk/logback-site/src/site/pages/manual/introduction.html
logback/trunk/logback-site/src/site/pages/manual/joran.html
logback/trunk/logback-site/src/site/pages/manual/layouts.html
logback/trunk/logback-site/src/site/pages/manual/mdc.html
logback/trunk/logback-site/src/site/pages/team.html
logback/trunk/logback-site/src/site/pages/templates/right.js
Log:
- added dependencies.html (a page explaining logback dependencies)
- various other improvements to the docs
Modified: logback/trunk/logback-site/src/site/pages/css/site.css
==============================================================================
--- logback/trunk/logback-site/src/site/pages/css/site.css (original)
+++ logback/trunk/logback-site/src/site/pages/css/site.css Tue Mar 6 20:11:05 2007
@@ -215,6 +215,12 @@
}
+table.bodyTable td {
+ padding-left: 0.5ex;
+ padding-bottom: 0.5ex;
+}
+
+
table.bodyTable tr.a {
background-color: #ddd;
}
Modified: logback/trunk/logback-site/src/site/pages/demo.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/demo.html (original)
+++ logback/trunk/logback-site/src/site/pages/demo.html Tue Mar 6 20:11:05 2007
@@ -23,27 +23,27 @@
<h2>Logback Demo</h2>
<p>
- Welcome to the logback demo! This document will take you to a tour
- that will show you some of the major possibilities of logback.
+ Welcome to the logback demo! This document will take you through
+ tour that will show you some of the major features of logback.
</p>
<h3>Installation</h3>
<p>
- First, please download the logback demo. You will need to install a
- <a href="http://subversion.tigris.org/">Subversion</a> client
- and issue the following line in a command/terminal window:
+ First, please download the logback demo. You will need to install a
+ <a href="http://subversion.tigris.org/">Subversion</a> client and
+ issue the following command on a console:
</p>
<div class="source"><pre>svn co http://svn.qos.ch/repos/logback-demo/trunk logback-demo</pre></div>
-<p>
-This will checkout a copy of the logback demonstration web-app to a directory called
-<em>logback-demo</em>. The logback demo can be packaged as a <em>war</em> file and
-deployed to an application server. We strongly recommand the use of
-<a href="http://maven.apache.org/">Maven 2</a> to do this
-task, since all it will take to compile, package and run a server with the demo is
-a single command.
+<p>This will checkout a copy of the logback demonstration web-app to a
+directory called <em>logback-demo</em>. The logback demo can be
+packaged as a <em>war</em> file and deployed to an application
+server. We strongly recommend the use of <a
+href="http://maven.apache.org/">Maven2</a> to do this task, since all
+it will take to compile, package and run a server with the demo is a
+single command.
</p>
<p>
@@ -53,68 +53,73 @@
<div class="source"><pre>mvn package jetty:run</pre></div>
-<p>
- Then, visit <em>http://localhost:8080/logback-demo/</em> to view the main page of the logback demo.
+<p>Then, visit <em>http://localhost:8080/logback-demo/</em> to view
+the main page of the logback demo.
</p>
<h3>Logback Classic</h3>
-<p>
-For now, logback uses two components: one <code>ConsoleAppender</code> and one
-<code>RollingFileAppender</code>. The <code>RollingFileAppender</code> sends logging events
-to a file called <em>logFile.log</em> and will rollover
-the active file every minute. The old file will be renamed and compressed to <em>zip</em>
-file. The <code>ConsoleAppender</code> will output the logging requests to the console,
-and shorten the logger names to gain some space in the console window, without making the
-names unreadable. For example, <code>ch.qos.logback.demo.prime.NumberCruncherImpl
-</code> will be displayed as <code>c.q.l.d.prime.NumberCruncherImpl</code>.
+<p>For now, logback uses two components: one
+<code>ConsoleAppender</code> and one
+<code>RollingFileAppender</code>. The <code>RollingFileAppender</code>
+sends logging events to a file called <em>logFile.log</em> and will
+rollover the active file every minute. The old file will be renamed
+and compressed to <em>zip</em> file. The <code>ConsoleAppender</code>
+will output the logging requests to the console, and shorten the
+logger names to gain some space in the console window, without making
+the names unreadable. For example,
+<code>ch.qos.logback.demo.prime.NumberCruncherImpl </code> will be
+displayed as <code>c.q.l.d.prime.NumberCruncherImpl</code>.
</p>
<p>You can study the configuration file that is used by editing the
-file called <em>logback.xml</em>, located in the <em>src/main/resources/</em> directory
-of the demo. You might want to keep this file in an editor window, since we will
-modify its content several times thoughout the demo.
-</p>
-
-<p>
-Let's now visit the <em>ViewStatii</em> page, via the navigation menu on the left hand
-of the navigator window. This page contains the content of the <code>Status</code> objects that were
-created until now. <code>Status</code> objects are a part of logback's powerful internal
-reporting framework. They allow you to see what is going on in logback, and check
-that a configuration file has been parsed correctly, or that a rollover has occured as
-expected.
-</p>
-
-<p>
-After you're back to the main window, visiting the <em>View logs</em> page does
-not impress much at the moment. Let us uncomment
-the <strong>two</strong> parts of the config file that are below the <em>Cyclic buffer</em> comment.
-A <code>CyclicBuffer</code> is a class that keeps track of logging events and holds these
-objects for immediate or differed display. The first element that you will need to uncomment
-is the <em>appender</em> element. This element describes and configures the <code>CyclicBuffer</code>.
-The second element, found at the end of the configuration file, is a <em>appender-ref</em> element.
-It is used to link the appender to a given logger.
-Now reload the web-app by exiting the previous command with <em>CTRL-C</em> and issuing it
-again: <em>mvn package jetty:run</em>.
-</p>
-
-<p>
-Now, the <em>View logs</em> page looks prettier. By virtue of the <code>CyclicBufferAppender</code>,
-this page can fetch the last events and present them through a servlet. We see that each 3 seconds
-a line is added to the logs. The formatting of this page is made with
-a <code>HTMLLayout</code>. This component creates a nice and readable table containing the logging
-events, based on a pattern that describes the information one wants to see in the table.
-</p>
+file called <em>logback.xml</em>, located in the
+<em>src/main/resources/</em> directory of the demo. You might want to
+keep this file in an editor window, since we will modify its content
+several times thoughout the demo.
+</p>
+
+<p>Let's now visit the <em>ViewStatii</em> page, via the navigation
+menu on the left hand of the navigator window. This page contains the
+content of the <code>Status</code> objects that were created until
+now. <code>Status</code> objects are a part of logback's powerful
+internal reporting framework. They allow you to see what is going on
+in logback, and check that a configuration file has been parsed
+correctly, or that a rollover has occured as expected.
+</p>
+
+<p>After you're back to the main window, visiting the <em>View
+logs</em> page does not impress much at the moment. Let us uncomment
+the <strong>two</strong> parts of the config file that are below the
+<em>Cyclic buffer</em> comment. A <code>CyclicBuffer</code> is a
+class that keeps track of logging events and holds these objects for
+immediate or differed display. The first element that you will need to
+uncomment is the <em>appender</em> element. This element describes and
+configures the <code>CyclicBuffer</code>. The second element, found
+at the end of the configuration file, is a <em>appender-ref</em>
+element. It is used to link the appender to a given logger. Now
+reload the web-app by exiting the previous command with
+<em>CTRL-C</em> and issuing it again: <em>mvn package jetty:run</em>.
+</p>
+
+<p>Now, the <em>View logs</em> page looks prettier. By virtue of the
+<code>CyclicBufferAppender</code>, this page can fetch the last events
+and present them through a servlet. We see that each 3 seconds a line
+is added to the logs. The formatting of this page is made with a
+<code>HTMLLayout</code>. This component creates a nice and readable
+table containing the logging events, based on a pattern that describes
+the information one wants to see in the table.
+</p>
+
+<p>Having the logs that we see on the web page cluttered with
+scheduled <em>Howdydy-diddly-ho</em> messages is not very
+comfortable. To get rid of these logs, now that we've verified that
+they work, we can add an <code>EvaluatorFilter</code> to the
+Appender. Uncomment the part named <em>Cyclic buffer with
+Evaluator</em>. You may then comment the first Basic Cyclic buffer
+<em>appender</em> element.</p>
-<p>
-Having the logs that we see on the web page cluttered with scheduled
-<em>Howdydy-diddly-ho</em> messages
-is not very comfortable. To get rid of these logs, now that we've verified that they
-work, we can add an <code>EvaluatorFilter</code> to the Appender. Uncomment the
-part named <em>Cyclic buffer with Evaluator</em>. You may then
-comment the first Basic Cyclic buffer <em>appender</em> element.</p>
-<p>
-Let's take a look at the filter we've just added:
+<p>Let's take a look at the filter we've just added:
</p>
<div class="source"><pre><filter class="ch.qos.logback.core.filter.EvaluatorFilter">
@@ -128,150 +133,150 @@
<OnMatch>DENY</OnMatch>
</filter></pre></div>
-<p>
-The expression element contains a familiar java statement. This expression
-checks that the name of the logger contains the String <em>LoggingTask</em>, but
-also that the message accompagnying the log contains <em>Howdydy-diddly-ho</em>.
-Moreover, in order to be sure that the <em>Howdydy-diddly-ho</em> task actually
-works, we add to the expression a last statement that allows logs to be processed
-for the first 20 seconds after the application launch.
-The variables used in this statement (<code>logger</code>, <code>message</code> and
-<code>event</code>) are made available by logback before the filter
-evaluates the expression.
-The <em>OnMatch</em> element allows the user to choose the filter's behaviour once
-the expression was evaluated to true. A similar <em>OnMismatch</em> element exists.
-</p>
-
-<p>
-After a restart, the <em>Vew logs</em> page shows the
-<em>Howdydy-diddly-ho</em> logs for the first 20 seconds only. Trying a prime calculations
-on the <em>Prime number</em> page will add several lines to the <em>View logs</em> page.
+<p>The expression element contains a familiar java statement. This
+expression checks that the name of the logger contains the String
+<em>LoggingTask</em>, but also that the message accompagnying the log
+contains <em>Howdydy-diddly-ho</em>. Moreover, in order to be sure
+that the <em>Howdydy-diddly-ho</em> task actually works, we add to the
+expression a last statement that allows logs to be processed for the
+first 20 seconds after the application launch. The variables used in
+this statement (<code>logger</code>, <code>message</code> and
+<code>event</code>) are made available by logback before the filter
+evaluates the expression. The <em>OnMatch</em> element allows the
+user to choose the filter's behaviour once the expression was
+evaluated to true. A similar <em>OnMismatch</em> element exists.
+</p>
+
+<p>After a restart, the <em>Vew logs</em> page shows the
+<em>Howdydy-diddly-ho</em> logs for the first 20 seconds only. Trying
+a prime calculations on the <em>Prime number</em> page will add
+several lines to the <em>View logs</em> page.
</p>
<h4>Turbo Filters</h4>
-<p>
-Logback ships with a special category of filters: <code>TurboFilter</code> objects
-are ultra-fast, context-wide filters. They reveals themselves very useful to
-test MDC values, for examples and to add context-wide conditions to allow or deny
-logging events. Let's uncomment the part named
-<em>TurboFilter: MDC value</em> in the <em>logback.xml</em> file.
-</p>
-<p>
-This part adds a <code>TurboFilter</code> object to the context. It allows to
-have a typical output for every client that uses the demo application, but a different
-one for one given user. Here, the filter will accept all the requests that are
-associated with a MDC value of <em>sebastien</em> bound to the <em>username</em> key.
-</p>
-<p>
-To view the consequences of such a <code>TurboFilter</code>, we are going to
-stop all logging activity, except for a specific user. To achieve that, the simplest
-way is to set the root logger's level to <code>OFF</code>. Modify the <em>level</em>
-element, nested inside the <em>root</em> element of <em>logback.xml</em>. Its <em>value</em>
-attribute should be <em>OFF</em> instead of <em>DEBUG</em>. Next, restart the server
-as we've done previously.
-</p>
-
-<p>
-Once on the demo main webpage again, perform a few actions (i.e. calculate
-a few prime numbers) and watch the <em>View logs</em> page. The table should be
-empty.
-</p>
-
-<p>
-Now log in the application using the username <em>sebastien</em> and perform a few
-prime calculations again. The <em>View logs</em> page now shows the logs that were
-generated by the calculation classes. Moreover, each log is associated with the name
-of the user who provoked the logging event. Please log off before continuing the
+<p>Logback ships with a special category of filters:
+<code>TurboFilter</code> objects are ultra-fast, context-wide
+filters. They reveals themselves very useful to test MDC values, for
+examples and to add context-wide conditions to allow or deny logging
+events. Let's uncomment the part named <em>TurboFilter: MDC value</em>
+in the <em>logback.xml</em> file.
+</p>
+
+<p>This part adds a <code>TurboFilter</code> object to the context. It
+allows to have a typical output for every client that uses the demo
+application, but a different one for one given user. Here, the filter
+will accept all the requests that are associated with a MDC value of
+<em>sebastien</em> bound to the <em>username</em> key.
+</p>
+
+<p>To view the consequences of such a <code>TurboFilter</code>, we are
+going to stop all logging activity, except for a specific user. To
+achieve that, the simplest way is to set the root logger's level to
+<code>OFF</code>. Modify the <em>level</em> element, nested inside the
+<em>root</em> element of <em>logback.xml</em>. Its <em>value</em>
+attribute should be <em>OFF</em> instead of <em>DEBUG</em>. Next,
+restart the server as we've done previously.
+</p>
+
+<p>Once on the demo main webpage again, perform a few actions
+(i.e. calculate a few prime numbers) and watch the <em>View logs</em>
+page. The table should be empty.
+</p>
+
+<p>Now log in the application using the username <em>sebastien</em>
+and perform a few prime calculations again. The <em>View logs</em>
+page now shows the logs that were generated by the calculation
+classes. Moreover, each log is associated with the name of the user
+who provoked the logging event. Please log off before continuing the
demo, using the <em>logout</em> button on the left.
</p>
<h4>Parametrized logging</h4>
-<p>
-Parametrized logging is a feature that will be a great asset for any performance-critical
-system. Usually, a logging request is issued like this:
+<p>Parametrized logging is a feature that will be a great asset for
+any performance-critical system. Usually, a logging request is issued
+like this:
</p>
<div class="source"><pre>logger.debug("Hello, my name is" + username + ", I am " + age + " years old.");</pre></div>
-<p>
-By issuing this line, the cost of constructing the String cannot be saved when the
-log request is not processed. For example, using the <code>debug()</code> method
-when, as we've just done, the root level is any value higher that <em>DEBUG</em> will
-result in a loss of time because all calls to the <code>debug()</code> method will
-eventually be dropped.
+<p>By issuing this line, the cost of constructing the String cannot be
+saved when the log request is not processed. For example, using the
+<code>debug()</code> method when, as we've just done, the root level
+is any value higher that <em>DEBUG</em> will result in a loss of time
+because all calls to the <code>debug()</code> method will eventually
+be dropped.
</p>
-<p>
-Logback offers the following method:
+<p>Logback offers the following method:
</p>
<div class="source"><pre>logger.debug("Hello, my name is {}, I am {} years old", username, age);</pre></div>
-<p>
-As you can see, the variables are not inserted in the message yet. Both the message
-and the values will be saved and used later, if the logging event is processed.
-</p>
-
-<p>
-Let us now run a test to see what kind of gain can we expect from this different
-message formatting approach. First, go to the <em>Prime number</em> page and
-run a few calculations. Check the time it takes to compute the results. To
-see a clearer difference between the two formatting methods, you might want to
-try the two big integers that are listed below the prime number textbox.
-</p>
-
-<p>
-Now let us edit the <code>NumberCruncherImpl</code> class, to switch the log methods.
-You will find this class in the <em>src/main/java/ch/qos/logback/demo/prime/</em>
-directory. On line 54 and 55, just uncomment the parametrized logging line and
-comment out the other line. Restart the server with <em>mvn package jetty:run</em>
-and re-run the calculations you tried beforehand.
-</p>
-
-<p>
-The durations should be obviously different. Remember that we had turned off all
-logging in the previous step of this demo. With the initial formatting method,
-we were constructing the logging message (<em>"Trying "+i+" as a factor."</em>)
-a huge amount of times, actually each time a factor was tried for these big numbers.
-With the paramatrized logging, the construction of the message was postponed and, since
-logging was turned off, not processed. We see here that the cost of the <b>non-</b>logging
-was taken down to a very small figure, dividing the total cost of the calculation
-by a non-negligeable factor.
+<p>As you can see, the variables are not inserted in the message
+yet. Both the message and the values will be saved and used later, if
+the logging event is processed.
+</p>
+
+<p>Let us now run a test to see what kind of gain can we expect from
+this different message formatting approach. First, go to the <em>Prime
+number</em> page and run a few calculations. Check the time it takes
+to compute the results. To see a clearer difference between the two
+formatting methods, you might want to try the two big integers that
+are listed below the prime number textbox.
+</p>
+
+<p>Now let us edit the <code>NumberCruncherImpl</code> class, to
+switch the log methods. You will find this class in the
+<em>src/main/java/ch/qos/logback/demo/prime/</em> directory. On line
+54 and 55, just uncomment the parametrized logging line and comment
+out the other line. Restart the server with <em>mvn package
+jetty:run</em> and re-run the calculations you tried beforehand.
+</p>
+
+<p>The durations should be obviously different. Remember that we had
+turned off all logging in the previous step of this demo. With the
+initial formatting method, we were constructing the logging message
+(<em>"Trying "+i+" as a factor."</em>) a huge amount of times,
+actually each time a factor was tried for these big numbers. With the
+paramatrized logging, the construction of the message was postponed
+and, since logging was turned off, not processed. We see here that the
+cost of the <b>non-</b>logging was taken down to a very small figure,
+dividing the total cost of the calculation by a non-negligeable
+factor.
</p>
<h4>Markers</h4>
-<p>
-SLF4J allows the use of Marker objects.
-For example, one could use <em>TRACE</em> markers, to enrich some
-specific logging statements. In our demo applications, the <em>Howdydy-diddly-ho</em>
-logging statements are bound to a <em>TRACE</em> marker.
-On the other hand, one could want that such
-marked statements be dropped and not logged anywhere. <code>TurboFilter</code>
-objects can do that in an elegant and flexible way. Let us uncomment the
-<em>TurboFilter: Marker value</em> section in the <em>logback.xml</em> file as
-well as set the root logger's level back to <em>DEBUG</em>,
-and reload via the <em>Reload configuration</em> page.
-</p>
-<p>
-The logging statements that contained the <em>Howdydy-diddly-ho</em> do
-not appear anymore because they were associated with a <em>TRACE</em> marker. You
-can check that by visiting the <em>View Logs</em> page and reloading it every three
+<p>SLF4J allows the use of Marker objects. For example, one could use
+<em>TRACE</em> markers, to enrich some specific logging statements. In
+our demo applications, the <em>Howdydy-diddly-ho</em> logging
+statements are bound to a <em>TRACE</em> marker. On the other hand,
+one could want that such marked statements be dropped and not logged
+anywhere. <code>TurboFilter</code> objects can do that in an elegant
+and flexible way. Let us uncomment the <em>TurboFilter: Marker
+value</em> section in the <em>logback.xml</em> file as well as set the
+root logger's level back to <em>DEBUG</em>, and reload via the
+<em>Reload configuration</em> page.
+</p>
+
+<p>The logging statements that contained the
+<em>Howdydy-diddly-ho</em> do not appear anymore because they were
+associated with a <em>TRACE</em> marker. You can check that by
+visiting the <em>View Logs</em> page and reloading it every three
seconds for several times.
</p>
<h3>Logback Access</h3>
-<p>
-Access logging is another important feature offered by logback. Give a
-look at what appears on the console while
-browsing the logback-demo website. Each access is logged to the console,
-with some information about the event. The configuration file
-that we will edit in the next few steps is called <em>logback-access.xml</em>
-and is located in the <em>src/etc/</em> directory.
-The necessary configuration is listed below:
+<p>Access logging is another important feature offered by
+logback. Give a look at what appears on the console while browsing the
+logback-demo website. Each access is logged to the console, with some
+information about the event. The configuration file that we will edit
+in the next few steps is called <em>logback-access.xml</em> and is
+located in the <em>src/etc/</em> directory. The necessary
+configuration is listed below:
</p>
<div class="source"><pre><configuration>
@@ -287,23 +292,22 @@
</configuration></pre></div>
-<p>
-To see more clearly the output produced by logback access,
-you might want set the root logger's level to <em>OFF</em>, in the first
-logback configuration file, called
-<em>logback.xml</em> and located in <em>src/main/resources/</em>. It will clear
-the console from the logs made by the demo application and only display those
-that are generated by logback access.
-</p>
-
-<p>
-To see the logs produced by logback access, just visit a few pages and
-look at your console. The information contained in each line has been
-specified in the configuration file. The <code>ConsoleAppender</code>
-named <em>STDOUT</em> contains a <code>PatternLayout</code> component.
-This very component that one uses in logback classic to display either
-the message, logger name or level of the request is used in logback
-access to display the request method, requested page, status code and many others.
+<p>To see more clearly the output produced by logback access, you
+might want set the root logger's level to <em>OFF</em>, in the first
+logback configuration file, called <em>logback.xml</em> and located in
+<em>src/main/resources/</em>. It will clear the console from the logs
+made by the demo application and only display those that are generated
+by logback access.
+</p>
+
+<p>To see the logs produced by logback access, just visit a few pages
+and look at your console. The information contained in each line has
+been specified in the configuration file. The
+<code>ConsoleAppender</code> named <em>STDOUT</em> contains a
+<code>PatternLayout</code> component. This very component that one
+uses in logback classic to display either the message, logger name or
+level of the request is used in logback access to display the request
+method, requested page, status code and many others.
</p>
<p>Here is a sample output of this appender.</p>
@@ -323,17 +327,16 @@
<h4>Filtering</h4>
-<p>
-In this next part, we are going to add some information to the console.
-Let us imagine that we want to log the numbers that are tried on the
-<em>Lottery</em> page. We will need a second <code>ConsoleAppender</code>
-that will only print a given information (e.g. the guessed number, along
-with some hints about the player). The appender will also have to
-print that information only when a certain page is accessed.
+<p>In this next part, we are going to add some information to the
+console. Let us imagine that we want to log the numbers that are
+tried on the <em>Lottery</em> page. We will need a second
+<code>ConsoleAppender</code> that will only print a given information
+(e.g. the guessed number, along with some hints about the player). The
+appender will also have to print that information only when a certain
+page is accessed.
</p>
-<p>
-The configuration lines that are necessary are listed below.
+<p>The configuration lines that are necessary are listed below.
</p>
<div class="source"><pre><appender name="STDOUT_LOTTERY"
@@ -358,58 +361,59 @@
</layout>
</appender></pre></div>
-<p>
-This appender will use a <code>PatternLayout</code> to format its output.
-The <em>%reqParameter</em> conversion word is used to extract the guessed number
-from the request, and print it.
-</p>
-<p>
-It also uses an <code>EvaluatorFilter</code> that will prevent the appender
-to display anything when the access' request url does not match the
-given expression. You can see that it is easy to specify a RegExp, name
-it and use it in the expression that will be evaluated. In that case, we only
-entered the name of the <em>lottery.do</em> action.
-</p>
-
-<p>
-Let us uncomment the two elements with the <em>Lottery to Console</em> comments and
-restart the server. Now, try to play the lottery. You will see more lines in the
-Console that you've seen until now. At every try, logback will produce a log
-as shown below:
+<p>This appender will use a <code>PatternLayout</code> to format its
+output. The <em>%reqParameter</em> conversion word is used to extract
+the guessed number from the request, and print it.
+</p>
+
+<p>It also uses an <code>EvaluatorFilter</code> that will prevent the
+appender to display anything when the access' request url does not
+match the given expression. You can see that it is easy to specify a
+RegExp, name it and use it in the expression that will be
+evaluated. In that case, we only entered the name of the
+<em>lottery.do</em> action.
+</p>
+
+<p>Let us uncomment the two elements with the <em>Lottery to
+Console</em> comments and restart the server. Now, try to play the
+lottery. You will see more lines in the Console that you've seen until
+now. At every try, logback will produce a log as shown below:
</p>
<div class="source"><pre>LOTTERY: 192.168.1.6 [POST /logback-demo/Lottery.do HTTP/1.1] Guess=321</pre></div>
<h4>Sending emails</h4>
-<p>
-Logback access provides several components that are usually used by the classic
-module. For example, a <code>SMTPAppender</code> can be used to send an email when
-a specific event occurs. Here, we will contact the lottery administrator each time
-a winner is detected. To achieve this, we will add a <code>SMTPAppender</code> to
-the existing configuration. Please uncomment the part of <em>logback-access.xml</em>
-named <em>Lottery to Email</em>. Do not forget to uncomment the
-<em>appender-ref</em> element, at the end of the configuration file, referencing
-the appender called <em>SMTP</em>. In the appender element, notice the use of a
-<code>URLEvaluator</code>. This evaluator allows us to only specify one or more URLs
-that have to be watched. When one of them are accessed, an email is sent.
-</p>
-
-<p>
-A reload of the configuration has to be done before we can test this new
-component. Once done, try to play the lottery with the number <em>99</em>.
-You should see a congratulation message but, most importantly, the
-specified recipients should have a new mail in their mailbox. The content
-of the email is a nicely formatted HTML table with informations about
-the access that have occured before the triggering event.
+<p>Logback access provides several components that are usually used by
+the classic module. For example, a <code>SMTPAppender</code> can be
+used to send an email when a specific event occurs. Here, we will
+contact the lottery administrator each time a winner is detected. To
+achieve this, we will add a <code>SMTPAppender</code> to the existing
+configuration. Please uncomment the part of
+<em>logback-access.xml</em> named <em>Lottery to Email</em>. Do not
+forget to uncomment the <em>appender-ref</em> element, at the end of
+the configuration file, referencing the appender called
+<em>SMTP</em>. In the appender element, notice the use of a
+<code>URLEvaluator</code>. This evaluator allows us to only specify
+one or more URLs that have to be watched. When one of them are
+accessed, an email is sent.
+</p>
+
+<p>A reload of the configuration has to be done before we can test
+this new component. Once done, try to play the lottery with the number
+<em>99</em>. You should see a congratulation message but, most
+importantly, the specified recipients should have a new mail in their
+mailbox. The content of the email is a nicely formatted HTML table
+with informations about the access that have occured before the
+triggering event.
</p>
<h3>JMX</h3>
-<p>
-Logback publishes several components via JMX. This allows you to see
-the status of certain objects, and change several configuration parameters.
-Publishing logback's components via JMX is possible with Jetty and Tomcat.
+<p>Logback publishes several components via JMX. This allows you to
+see the status of certain objects, and change several configuration
+parameters. Publishing logback's components via JMX is possible with
+Jetty and Tomcat.
</p>
<p>
@@ -418,41 +422,42 @@
<div class="source"><pre>http://localhost:8082/</pre></div>
-<p>
-The domain <em>ch.qos.logback.access.jetty</em> contains an entry
-that allows you to see the <em>RequestLogImpl</em> component. This component
-is used to plug logback in Jetty's internal achitecture. Clicking on
-it reveals the status of several parameters, such as the started status, and
-two methods are available to start and stop the <em>RequestLogImpl</em>.
-</p>
-
-<p>
-To see the influence of the available operations, place the terminal window
-and your web browser such that you can see them both. Stop the <em>RequestLogImlp</em>
-and reload a few times the main page of the demo. Nothing should be displayed. If you start
-the <em>RequestLogImpl</em> again, the requests will be shown in the terminal
-window.
+<p>The domain <em>ch.qos.logback.access.jetty</em> contains an entry
+that allows you to see the <em>RequestLogImpl</em> component. This
+component is used to plug logback in Jetty's internal
+achitecture. Clicking on it reveals the status of several parameters,
+such as the started status, and two methods are available to start and
+stop the <em>RequestLogImpl</em>.
+</p>
+
+<p>To see the influence of the available operations, place the
+terminal window and your web browser such that you can see them
+both. Stop the <em>RequestLogImlp</em> and reload a few times the main
+page of the demo. Nothing should be displayed. If you start the
+<em>RequestLogImpl</em> again, the requests will be shown in the
+terminal window.
+</p>
+
+<p>In the <em>logback-access.xml</em> configuration file, uncomment
+the <em>JMX</em> part and restart the server. A
+<code>CountingFilter</code> will now be available in the
+<em>ch.qos.logback.access</em> domain. Clicking on it will display
+several statistical figures corresponding to server accesses. Loading
+some application pages will make these figures grow and show a
+time-sensitive picture of the server activity.
</p>
-<p>
-In the <em>logback-access.xml</em> configuration file, uncomment the <em>JMX</em>
-part and restart the server. A <code>CountingFilter</code> will now be available in
-the <em>ch.qos.logback.access</em> domain. Clicking on it will display several statistical
-figures corresponding to server accesses. Loading some application pages will make
-these figures grow and show a time-sensitive picture of the server activity.
-</p>
-
-<p>
-These is more to discover with logback and JMX. In the <em>logback.xml</em> file,
-placed in the <em>src/main/resources</em> directory, uncomment the <code>JMXConfigurator</code>
-element. Once done, restart the server.
-</p>
-
-<p>
-By refreshing the previously loaded JMX page, you should see a new component,
-under the domain <em>ch.qos.logback.classic</em>. It is the <code>JMXConfigurator</code>.
-Clicking on it reveals its content. Its possibilities are listed below:
+<p>These is more to discover with logback and JMX. In the
+<em>logback.xml</em> file, placed in the <em>src/main/resources</em>
+directory, uncomment the <code>JMXConfigurator</code> element. Once
+done, restart the server.
+</p>
+
+<p>By refreshing the previously loaded JMX page, you should see a new
+component, under the domain <em>ch.qos.logback.classic</em>. It is the
+<code>JMXConfigurator</code>. Clicking on it reveals its content. Its
+possibilities are listed below:
</p>
<ul>
@@ -474,47 +479,40 @@
<p>Change the level setting of a specified logger.</p>
</ul>
-<p>
- In the last case, you must specify the name of the logger you
- wish to alter, and its new level.
+<p> In the last case, you must specify the name of the logger you wish
+ to alter, and its new level.
</p>
-<p>
-Checking the level of a logger is an easy task. Enter the name of the logger in
-the appropriate field and click the <em>Invoke</em> button. You should be able
-to verify that the logger named <em>root</em> has its level set to <em>OFF</em>.
+<p>Checking the level of a logger is an easy task. Enter the name of
+the logger in the appropriate field and click the <em>Invoke</em>
+button. You should be able to verify that the logger named
+<em>root</em> has its level set to <em>OFF</em>.
</p>
-<p>
-Let us test the level setting possibility of the configurator.
-The <em>Prime Number</em> page requests two types of logs. When the
-calculation checks if a number is a factor, a <em>DEBUG</em> log is displayed. When
-the calculation has found a factor, a <em>INFO</em> log is displayed.
+<p>Let us test the level setting possibility of the configurator. The
+<em>Prime Number</em> page requests two types of logs. When the
+calculation checks if a number is a factor, a <em>DEBUG</em> log is
+displayed. When the calculation has found a factor, a <em>INFO</em>
+log is displayed.
</p>
-<p>
-Let us first set the level of the logger named <em>ch.qos.logback.demo.prime</em>
-to <em>DEBUG</em>. Run a prime calculation directly, without restarting the server. The
-<em>View logs</em> page should show the <em>DEBUG</em> and <em>INFO</em> logs.
+<p>Let us first set the level of the logger named
+<em>ch.qos.logback.demo.prime</em> to <em>DEBUG</em>. Run a prime
+calculation directly, without restarting the server. The <em>View
+logs</em> page should show the <em>DEBUG</em> and <em>INFO</em> logs.
</p>
-<p>
-Now, if you set the level of the <em>ch.qos.logback.demo.prime</em> logger to
-<em>INFO</em>, and run a prime calculation
-again, you should not see the <em>DEBUG</em> level logs anymore.
+<p>Now, if you set the level of the <em>ch.qos.logback.demo.prime</em>
+logger to <em>INFO</em>, and run a prime calculation again, you should
+not see the <em>DEBUG</em> level logs anymore.
</p>
-<p>
-This demo of logback is now over. Do not hesitate to play around with the configuration files.
-You might want to check the <a href="http://logback.qos.ch/documentation.html">
-logback documentation page</a> for more information about any component
-you'd like to test.
+<p>This demo of logback is now over. Do not hesitate to play around
+with the configuration files. You might want to check the <a
+href="http://logback.qos.ch/documentation.html"> logback documentation
+page</a> for more information about any component you'd like to test.
</p>
-
-
-
-
<script src="templates/footer.js"></script>
</div>
Added: logback/trunk/logback-site/src/site/pages/dependencies.html
==============================================================================
--- (empty file)
+++ logback/trunk/logback-site/src/site/pages/dependencies.html Tue Mar 6 20:11:05 2007
@@ -0,0 +1,204 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+<title>Logback Dependencies</title>
+<link rel="stylesheet" type="text/css" media="screen" href="css/site.css" />
+</head>
+<body>
+<script>
+ prefix='';
+</script>
+
+<script src="templates/header.js"></script>
+<div id="left">
+ <script src="templates/left.js"></script>
+</div>
+<div id="right">
+ <script src="templates/right.js"></script>
+</div>
+<div id="content">
+
+
+ <h1>Dependencies per module</h1>
+
+ <p>Each logback module has a different set of dependencies. These
+ are listed below in a separate table per module.</p>
+
+ <h2>logback-core</h2>
+
+ <table class="bodyTable">
+ <tr>
+ <th>Component</th>
+ <th>dependencies</th>
+ </tr>
+
+ <tr class="a">
+ <td>Overall</td>
+ <td>
+ <ul>
+ <li>JDK 1.5, unless you are using the retro-translated
+ <em>logback-core-${project.version}-jdk14.jar</em> which
+ requires JDK 1.4
+ </li>
+ </ul>
+ </td>
+ </tr>
+
+ <tr class="b">
+ <td>JMSAppender</td>
+ <td>
+ <ul>
+ <li><a href="http://java.sun.com/products/jms/docs.html">JMS
+ API</a> version 1.1
+ </li>
+ </ul>
+ </td>
+ </tr>
+ <tr class="b">
+ <td>SMTPAppender</td>
+ <td>
+ <ul>
+ <li><a
+ href="https://glassfish.dev.java.net/javaee5/mail/">JavaMail
+ API</a> version 1.4,
+ </li>
+ <li><a
+ href="http://java.sun.com/products/javabeans/jaf/index.jsp">JavaBeans
+ Activation Framework (JAF)</a> version 1.1
+ </li>
+ </ul>
+ </td>
+ </tr>
+ <tr class="a">
+ <td>JaninoEventEvaluatorBase and derived classes</td>
+ <td>
+ <ul>
+ <li><a href="http://janino.net">Janino</a> version 2.4.3</li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+
+ <h2>logback-classic</h2>
+
+ <table class="bodyTable">
+ <tr>
+ <th>Component</th>
+ <th>dependencies</th>
+ </tr>
+
+ <tr class="a">
+ <td>Overall</td>
+ <td>
+ <ul>
+ <li>JDK 1.5, unless you are using the retro-translated
+ <em>logback-classic-${project.version}-jdk14.jar</em> which
+ requires JDK 1.4
+ </li>
+ </ul>
+ </td>
+ </tr>
+
+ <tr class="b">
+ <td>Overall</td>
+ <td>
+ <ul>
+ <li>logback-core, and by transitivity logback-core's
+ dependencies.
+ </li>
+ </ul>
+ </td>
+ </tr>
+
+ <tr class="a">
+ <td>Overall</td>
+ <td>
+ <ul>
+ <li><a href="http://www.slf4j.org">slf4j-api</a> version
+ ${slf4j.version}
+ </li>
+ </ul>
+ </td>
+ </tr>
+
+ <tr class="b">
+ <td>ch.qos.logback.classic.selector.*</td>
+ <td>
+ <ul>
+ <li>servlet-api version 2.5
+ </li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+
+ <h2>logback-access</h2>
+
+ <table class="bodyTable">
+ <tr>
+ <th>Component</th>
+ <th>dependencies</th>
+ </tr>
+
+ <tr class="a">
+ <td>Overall</td>
+ <td>
+ <ul>
+ <li>JDK 1.5, unless you are using the retro-translated
+ <em>logback-classic-${project.version}-jdk14.jar</em> which
+ requires JDK 1.4
+ </li>
+ </ul>
+ </td>
+ </tr>
+
+ <tr class="b">
+ <td>Overall</td>
+ <td>
+ <ul>
+ <li>logback-core, and by transitivity logback-core's
+ dependencies.
+ </li>
+ </ul>
+ </td>
+ </tr>
+
+ <tr class="a">
+ <td>Overall</td>
+ <td>
+ <ul>
+ <li>servlet-api version 2.5
+ </li>
+ </ul>
+ </td>
+ </tr>
+
+
+ <tr class="b">
+ <td>ch.qos.logback.access.jetty.*</td>
+ <td>
+ <ul>
+ <li><a href="http://jetty.mortbay.org">Jetty</a> version 6.1.1
+ </li>
+ </ul>
+ </td>
+ </tr>
+
+ <tr class="a">
+ <td>ch.qos.logback.access.tomcat.*</td>
+ <td>
+ <ul>
+ <li><a href="http://tomcat.apache.org">Tomcat</a> version 5.5.15
+ </li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+
+
+<script src="../templates/footer.js"></script>
+</div>
+</body>
+</html>
+
\ No newline at end of file
Modified: logback/trunk/logback-site/src/site/pages/documentation.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/documentation.html (original)
+++ logback/trunk/logback-site/src/site/pages/documentation.html Tue Mar 6 20:11:05 2007
@@ -34,6 +34,12 @@
<li>
<a href="faq.html">A Frequently Asked Questions list (FAQ)</a>
</li>
+
+ <li>
+ <a href="dependencies.html">Dependencies per module</a>
+ </li>
+
+
<li>
<a href="bridge.html">How to use the log4j bridge</a>
</li>
@@ -41,7 +47,7 @@
<a href="jmxConfig.html">How to use the logback JMX Configurator</a>
</li>
<li>
- <a href="demo.html">A step-by-step document to experience the logback-demo webApp</a>
+ <a href="demo.html">Walk-through logback-demo webApp</a>
</li>
</ul>
@@ -59,17 +65,14 @@
</li>
</ul>
- <p>
- Recently, Ceki Gülcü presented the top 10 reasons for migrating your projects to logback.
- Issues such as migration strategy, new APIs, SLF4J and Joran were be discussed. Emphasis was given to
- practical aspects and a live demo rather than relatively theoretical considerations. If you were
- not able to attend the presentation (or even if you were there), you can
- <a href="10reasons.ppt">download the slides</a> that Ceki used.
- </p>
-
-
-
-
+ <h2>Articles and Presentations</h2>
+
+ <ul>
+ <li><a href="10reasons.ppt">Top 10 reasons for migrating to
+ logback</a>, by Ceki Gülcü and Sébastien
+ Pennec.
+ </li>
+ </ul>
<script src="templates/footer.js"></script>
</div>
Modified: logback/trunk/logback-site/src/site/pages/index.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/index.html (original)
+++ logback/trunk/logback-site/src/site/pages/index.html Tue Mar 6 20:11:05 2007
@@ -51,7 +51,7 @@
</p>
-
+<script src="templates/footer.js"></script>
</div>
</body>
</html>
Modified: logback/trunk/logback-site/src/site/pages/manual/appenders.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/appenders.html (original)
+++ logback/trunk/logback-site/src/site/pages/manual/appenders.html Tue Mar 6 20:11:05 2007
@@ -4,10 +4,12 @@
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Chapter 4: Appenders</title>
<link rel="stylesheet" type="text/css" media="screen" href="../css/site.css" />
+<link rel="stylesheet" type="text/css" media="print" href="../css/print.css" />
+
</head>
<body>
- <script>
-prefix='../';
+<script>
+ prefix='../';
</script>
<script src="../templates/header.js"></script>
<div id="left">
@@ -224,13 +226,13 @@
configurable options. These options are described next.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">Encoding</span></b></td>
<td><code>String</code></td>
<td>
@@ -248,7 +250,7 @@
that the platform's default encoding is used.
</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">ImmediateFlush</span></b></td>
<td><code>boolean</code></td>
@@ -351,23 +353,23 @@
which buffers I/O operations but not character conversions.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">Encoding</span></b></td>
<td><code>String</code></td>
<td>See <code>WriterAppender</code> options.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">ImmediateFlush</span></b></td>
<td><code>boolean</code></td>
<td>See <code>WriterAppender</code> options.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">Target</span></b></td>
<td><code>String</code></td>
<td>
@@ -422,25 +424,25 @@
a <code>BufferedWriter</code>. Options for <code>FileAppender</code> are summarized below.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">Append</span></b></td>
<td><code>boolean</code></td>
<td>If true, events are appended at the end of an existing file.
Otherwise, if <span class="option">Append</span> is false, any existing
file is truncated. The <span class="option">Append</span> option is set to true by default.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">Encoding</span></b></td>
<td><code>String</code></td>
<td>See <code>WriterAppender</code> options.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">BufferedIO</span></b></td>
<td><code>boolean</code></td>
<td>
@@ -456,12 +458,12 @@
CPU cycles in the process.
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">BufferSize</span></b></td>
<td><code>int</code></td>
<td>Size of <code>BufferedWriter</code> buffer. The default value is 8192.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">File</span></b></td>
<td><code>String</code></td>
<td>
@@ -475,7 +477,7 @@
The <span class="option">File</span> option has no default value.
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">ImmediateFlush</span></b></td>
<td><code>boolean</code></td>
<td>
@@ -566,43 +568,43 @@
<p>Here are the available options for <code>RollingFileAppender</code>:</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">Append</span></b></td>
<td><code>boolean</code></td>
<td>See <code>FileAppender</code> options.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">BufferedIO</span></b></td>
<td><code>boolean</code></td>
<td>See <code>FileAppender</code> options.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">BufferSize</span></b></td>
<td><code>int</code></td>
<td>See <code>FileAppender</code> options.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">Encoding</span></b></td>
<td><code>String</code></td>
<td>See <code>WriterAppender</code> options.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">File</span></b></td>
<td><code>String</code></td>
<td>See <code>FileAppender</code> options.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">ImmediateFlush</span></b></td>
<td><code>boolean</code></td>
<td>See <code>WriterAppender</code> options.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">RollingPolicy</span></b></td>
<td><code>RollingPolicy</code></td>
<td>
@@ -611,7 +613,7 @@
occurs. See more information below.
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">TriggeringPolicy</span></b></td>
<td><code>TriggeringPolicy</code></td>
<td>
@@ -671,13 +673,13 @@
Here are the available options for <code>FixedWindowRollingPolicy</code>
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">FileNamePattern</span></b></td>
<td><code>String</code></td>
<td>
@@ -703,7 +705,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">MaxIndex</span></b></td>
<td><code>int</code></td>
<td>
@@ -712,7 +714,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">MinIndex</span></b></td>
<td><code>int</code></td>
<td>
@@ -740,8 +742,8 @@
option is set to <em>foo.log</em>.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>
Steps
</th>
@@ -753,7 +755,7 @@
</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td>
0
</td>
@@ -768,7 +770,7 @@
into the initial file.
</td>
</tr>
- <tr>
+ <tr class="a">
<td>
1
</td>
@@ -783,7 +785,7 @@
a new <em>foo.log</em> file is created and used for the output.
</td>
</tr>
- <tr>
+ <tr class="b">
<td>
2
</td>
@@ -799,7 +801,7 @@
Again, a new <em>foo.log</em> file is created and used for the output.
</td>
</tr>
- <tr>
+ <tr class="a">
<td>
3
</td>
@@ -816,7 +818,7 @@
A new <em>foo.log</em> file is created and used for the output.
</td>
</tr>
- <tr>
+ <tr class="b">
<td>
4
</td>
@@ -892,16 +894,16 @@
of <em>yyyy-MM-dd</em> is assumed. The following examples should
clarify the point.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>
<span class="option">FileNamePattern</span>
</th>
<th>Roll-over schedule</th>
<th>Example</th>
</tr>
- <tr>
- <td>
+ <tr class="b">
+ <td class="small">
<em>/wombat/folder/foo.%d</em>
</td>
<td>
@@ -917,8 +919,8 @@
output will be directed to <em>/wombat/foo.2006-11-24</em>.
</td>
</tr>
- <tr>
- <td>
+ <tr class="a">
+ <td class="small">
<em>/wombat/foo.%d{yyyy-MM}.log</em>
</td>
<td>Rollover at the beginning of each month.</td>
@@ -930,8 +932,8 @@
<em>/wombat/foo.2006-11.log</em>.
</td>
</tr>
- <tr>
- <td>
+ <tr class="b">
+ <td class="small">
<em>/wombat/foo.%d{yyyy-ww}.log</em>
</td>
<td>Rollover at the first day of each week. Note that the first
@@ -944,9 +946,9 @@
until it is rolled over at the beginning of the next week.
</td>
</tr>
- <tr>
- <td>
- <em>/wombat/foo.%d{yyyy-MM-dd-a}.log</em>
+ <tr class="a">
+ <td class="small">
+ <em>/wombat/foo. /<br/>%d{yyyy-MM-dd-a}.log</em>
</td>
<td>Rollover at midnight and midday of each day.</td>
<td>
@@ -956,9 +958,9 @@
<em>/wombat/foo.2006-11-03-PM.log</em>.
</td>
</tr>
- <tr>
- <td>
- <em>/wombat/foo.%d{yyyy-MM-dd_HH}.log</em>
+ <tr class="b">
+ <td class="small">
+ <em>/wombat/foo. /<br/>%d{yyyy-MM-dd_HH}.log</em>
</td>
<td>Rollover at the top of each hour.</td>
<td>
@@ -968,9 +970,9 @@
<em>/wombat/foo.2006-11-03_12.log</em>.
</td>
</tr>
- <tr>
- <td>
- <em>/wombat/foo.%d{yyyy-MM-dd_HH-mm}.log</em>
+ <tr class="a">
+ <td class="small">
+ <em>/wombat/foo. /<br/>%d{yyyy-MM-dd_HH-mm}.log</em>
</td>
<td>Rollover at the beggining of every minute.</td>
<td>
@@ -1002,13 +1004,13 @@
This feature is enabled if the value of the <span class="option">FileNamePattern</span> option
ends with <em>.gz</em> or <em>.zip</em>.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th><span class="option">FileNamePattern</span></th>
<th>Rollover schedule</th>
<th>Example</th>
</tr>
- <tr>
+ <tr class="b">
<td><em>/wombat/foo.%d.gz</em></td>
<td>Daily rollover (at midnight) with automatic GZIP compression of the
arcived files.</td>
@@ -1271,13 +1273,13 @@
<code>SocketAppender</code> options are listed in the following table.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">IncludeCallerData</span></b></td>
<td><code>boolean</code></td>
<td>
@@ -1288,7 +1290,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">Port</span></b></td>
<td><code>int</code></td>
<td>
@@ -1297,7 +1299,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">ReconnectionDelay</span></b></td>
<td><code>int</code></td>
<td>
@@ -1310,7 +1312,7 @@
connector thread present.
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">RemoteHost</span></b></td>
<td><code>String</code></td>
<td>
@@ -1501,13 +1503,13 @@
Here are <code>JMSAppenderBase</code>'s options:
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">InitialContextFactoryName</span></b></td>
<td><code>String</code></td>
<td>
@@ -1523,7 +1525,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">ProviderURL</span></b></td>
<td><code>String</code></td>
<td>
@@ -1539,7 +1541,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">URLPkgPrefixes</span></b></td>
<td><code>String</code></td>
<td>
@@ -1561,7 +1563,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">SecurityPrincipalName</span></b></td>
<td><code>String</code></td>
<td>
@@ -1576,7 +1578,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="b">
<td>
<b>
<span class="option">SecurityCredentials</span>
@@ -1599,7 +1601,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="a">
<td>
<b>
<span class="option">UserName</span>
@@ -1614,7 +1616,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="b">
<td>
<b>
<span class="option">Password</span>
@@ -1804,13 +1806,13 @@
listed below.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">TopicConnectionFactoryBindingName</span></b></td>
<td><code>String</code></td>
<td>
@@ -1819,7 +1821,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">TopicBindingName</span></b></td>
<td><code>String</code></td>
<td>
@@ -1873,13 +1875,13 @@
listed below.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">QueueConnectionFactoryBindingName</span></b></td>
<td><code>String</code></td>
<td>
@@ -1888,7 +1890,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">QueueBindingName</span></b></td>
<td><code>String</code></td>
<td>
@@ -1939,20 +1941,20 @@
The various options for <code>SMTPAppender</code> are summarized in the following table.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">SMTPHost</span></b></td>
<td><code>String</code></td>
<td>
The host name of the SMTP server. This parameter is mandatory.
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">To</span></b></td>
<td><code>String</code></td>
<td>
@@ -1960,7 +1962,7 @@
be specified by using several <To> elements.
</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">From</span></b></td>
<td><code>String</code></td>
<td>
@@ -1968,7 +1970,7 @@
<code>SMTPAppender</code>.
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">Subject</span></b></td>
<td><code>String</code></td>
<td>
@@ -1990,7 +1992,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="b">
<td><b><span class="option">BufferSize</span></b></td>
<td><code>String</code></td>
<td>
@@ -2001,7 +2003,7 @@
The default size of the cyclic buffer is 512.
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b><span class="option">Evaluator</span></b></td>
<td><code>String</code></td>
<td>
@@ -2251,8 +2253,8 @@
<code>getGeneratedKeys()</code> method.
</p>
- <table border="1" cellpadding="4">
- <tr>
+ <table class="bodyTable" border="1" cellpadding="4">
+ <tr class="a">
<th>RDBMS</th>
<th>
supports
@@ -2266,32 +2268,32 @@
SQLDialect support
</th>
</tr>
- <tr>
+ <tr class="b">
<td>PostgreSQL</td>
<td>NO</td>
<td>present and used</td>
</tr>
- <tr>
+ <tr class="a">
<td>MySQL</td>
<td>YES</td>
<td>present, but not actually needed or used</td>
</tr>
- <tr>
+ <tr class="b">
<td>Oracle</td>
<td>YES</td>
<td>present, but not actually needed or used</td>
</tr>
- <tr>
+ <tr class="a">
<td>DB2</td>
<td>YES</td>
<td>not present, and not needed or used</td>
</tr>
- <tr>
+ <tr class="b">
<td>MsSQL</td>
<td>YES</td>
<td>not present, and not needed or used</td>
</tr>
- <tr>
+ <tr class="a">
<td>HSQL</td>
<td>NO</td>
<td>present and used</td>
@@ -2324,35 +2326,35 @@
<p>
The <em>logging_event</em> table contains the following fields:
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b>timestmp</b></td>
<td><code>big int</code></td>
<td>The timestamp that was valid at the logging event's creation.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>formatted_message</b></td>
<td><code>text</code></td>
<td>The message that has been added to the logging event, after formatting with
<code>org.slf4j.impl.MessageFormatter</code>, in case object were passed
along with the message.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>logger_name</b></td>
<td><code>varchar</code></td>
<td>The name of the logger used to issue the logging request.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>level_string</b></td>
<td><code>varchar</code></td>
<td>The level of the logging event.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>reference_flag</b></td>
<td><code>smallint</code></td>
<td>
@@ -2370,27 +2372,27 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>caller_filename</b></td>
<td><code>varchar</code></td>
<td>The name of the file where the logging request was issued.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>caller_class</b></td>
<td><code>varchar</code></td>
<td>The class where the logging request was issued.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>caller_method</b></td>
<td><code>varchar</code></td>
<td>The name of the method where the logging request was issued.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>caller_line</b></td>
<td><code>char</code></td>
<td>The line number where the logging request was issued.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>event_id</b></td>
<td><code>int</code></td>
<td>The database id of the logging event.</td>
@@ -2403,23 +2405,23 @@
It contains these fields:
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b>event_id</b></td>
<td><code>int</code></td>
<td>The database id of the logging event.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>mapped_key</b></td>
<td><code>varchar</code></td>
<td>The key of the <code>MDC</code> property</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>mapped_value</b></td>
<td><code>text</code></td>
<td>The value of the <code>MDC</code> property</td>
@@ -2430,23 +2432,23 @@
The <em>logging_event_exception</em> table contains the following fields:
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td><b>event_id</b></td>
<td><code>int</code></td>
<td>The database id of the logging event.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>i</b></td>
<td><code>smallint</code></td>
<td>The index of the line in the full stack trace.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>trace_line</b></td>
<td><code>varchar</code></td>
<td>The corresponding line</td>
@@ -2759,13 +2761,13 @@
Here are its options:
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td>
<b>
<span class="option">SyslogHost</span>
@@ -2778,7 +2780,7 @@
The host name of the syslog server.
</td>
</tr>
- <tr>
+ <tr class="a">
<td>
<b>
<span class="option">Port</span>
@@ -2792,7 +2794,7 @@
to change the default value, that is <em>514</em>.
</td>
</tr>
- <tr>
+ <tr class="b">
<td>
<b>
<span class="option">Facility</span>
@@ -2814,7 +2816,7 @@
</p>
</td>
</tr>
- <tr>
+ <tr class="a">
<td>
<b>
<span class="option">SuffixPattern</span>
@@ -2964,62 +2966,62 @@
<p>The <em>access_event</em> table's fields are described below:</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="a">
<td><b>timestmp</b></td>
<td><code>big int</code></td>
<td>The timestamp that was valid at the access event's creation.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>requestURI</b></td>
<td><code>varchar</code></td>
<td>The URI that was requested.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>requestURL</b></td>
<td><code>varchar</code></td>
<td>The URL that was requested. This is a string composed of the request method,
the request URI and the request protocol.
</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>remoteHost</b></td>
<td><code>varchar</code></td>
<td>The name of the remote host.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>remoteUser</b></td>
<td><code>varchar</code></td>
<td>
The name of the remote user.
</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>remoteAddr</b></td>
<td><code>varchar</code></td>
<td>The remote IP address.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>protocol</b></td>
<td><code>varchar</code></td>
<td>The request protocol, like <em>HTTP</em> or <em>HTTPS</em>.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>method</b></td>
<td><code>varchar</code></td>
<td>The request method, usually <em>GET</em> or <em>POST</em>.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>serverName</b></td>
<td><code>varchar</code></td>
<td>The name of the server that issued the request.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>event_id</b></td>
<td><code>int</code></td>
<td>The database id of the access event.</td>
@@ -3031,23 +3033,23 @@
requests. The information is organised as shown below:
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="a">
<td><b>event_id</b></td>
<td><code>int</code></td>
<td>The database id of the corresponding access event.</td>
</tr>
- <tr>
+ <tr class="b">
<td><b>header_key</b></td>
<td><code>varchar</code></td>
<td>The header name, for example <em>User-Agent</em>.</td>
</tr>
- <tr>
+ <tr class="a">
<td><b>header_value</b></td>
<td><code>varchar</code></td>
<td>The header value, for example <em>Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0</em></td>
@@ -3060,13 +3062,13 @@
described below.
</p>
- <table>
- <tr>
+ <table class="bodyTable">
+ <tr class="a">
<th>Option Name</th>
<th>Type</th>
<th>Description</th>
</tr>
- <tr>
+ <tr class="b">
<td>
<b>
<span class="option">insertHeaders</span>
Modified: logback/trunk/logback-site/src/site/pages/manual/architecture.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/architecture.html (original)
+++ logback/trunk/logback-site/src/site/pages/manual/architecture.html Tue Mar 6 20:11:05 2007
@@ -4,6 +4,8 @@
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Chapter 2: Architecture</title>
<link rel="stylesheet" type="text/css" media="screen" href="../css/site.css" />
+<link rel="stylesheet" type="text/css" media="print" href="../css/print.css" />
+
</head>
<body>
<script>
Modified: logback/trunk/logback-site/src/site/pages/manual/contextSelector.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/contextSelector.html (original)
+++ logback/trunk/logback-site/src/site/pages/manual/contextSelector.html Tue Mar 6 20:11:05 2007
@@ -4,6 +4,8 @@
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Chapter 8: Context Selector</title>
<link rel="stylesheet" type="text/css" media="screen" href="../css/site.css" />
+<link rel="stylesheet" type="text/css" media="print" href="../css/print.css" />
+
</head>
<body>
<script>
Modified: logback/trunk/logback-site/src/site/pages/manual/filters.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/filters.html (original)
+++ logback/trunk/logback-site/src/site/pages/manual/filters.html Tue Mar 6 20:11:05 2007
@@ -4,6 +4,8 @@
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Chapter 6: Filters</title>
<link rel="stylesheet" type="text/css" media="screen" href="../css/site.css" />
+<link rel="stylesheet" type="text/css" media="print" href="../css/print.css" />
+
</head>
<body>
<script>
Modified: logback/trunk/logback-site/src/site/pages/manual/introduction.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/introduction.html (original)
+++ logback/trunk/logback-site/src/site/pages/manual/introduction.html Tue Mar 6 20:11:05 2007
@@ -4,6 +4,8 @@
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Chapter 1: Introduction</title>
<link rel="stylesheet" type="text/css" media="screen" href="../css/site.css" />
+<link rel="stylesheet" type="text/css" media="print" href="../css/print.css" />
+
</head>
<body>
<script>
@@ -206,7 +208,7 @@
</ol>
<a name="BuildingLogback"></a>
- <h3>Building logback</h3>
+ <h2>Building logback</h2>
<!--
@@ -220,20 +222,29 @@
-->
- <p>Like many java applications today, logback relies on <a
- href="http://maven.apache.org"> Maven 2</a> as its build tool. Maven
- 2 is a free open source build tool that requires one or more build
- files names <em>pom.xml</em> which already ship with logback
- distributions.
+ <p>Logback relies on <a href="http://maven.apache.org">Maven2</a> as
+ its build tool. Maven2 is a widely-used open-source build tool.
+ </p>
+
+ <p>Once you have installed Maven2, building the logback project,
+ including all its modules, should be as easy as issuing a <code>mvn
+ package</code> command in a terminal or command window from within
+ the directory where you unarchived the logback distribution
+ file. Maven will automatically download the required external
+ libraries and use them. However, certain artefacts cannot be
+ downloaded from the Maven2 repository. At present, time only the JMS
+ API from from SUN Inc. needs to be downloaded and installed
+ separately into your local repository.
+ </p>
+
+ <p>You can manually download the <a
+ href="http://java.sun.com/products/jms/docs.html">JMS API from
+ Sun</a>. Once you have downloaded the <em>jms.jar</em> file, you can
+ install it in your local Maven 2 repository by issuing the command:
</p>
- <p>Building all logback modules is mostly done by issuing the
- <em>mvn package</em> line in a terminal or command window. Maven
- will automatically download the required external libraries and use
- them. However, certain artefacts cannot be downloaded from the
- Maven2 repository. Libraries such as <code>JMS</code> from SUN Inc.
- need to be downloaded and installed separately into your local
- repository.
+ <p class="source">mvn install:install-file -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 /
+ -Dpackaging=jar -Dfile=/path/to/jms.jar.file
</p>
<p>Logback distributions contain complete source code such that you
Modified: logback/trunk/logback-site/src/site/pages/manual/joran.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/joran.html (original)
+++ logback/trunk/logback-site/src/site/pages/manual/joran.html Tue Mar 6 20:11:05 2007
@@ -4,6 +4,8 @@
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Chapter3: Logback configuration</title>
<link rel="stylesheet" type="text/css" media="screen" href="../css/site.css" />
+<link rel="stylesheet" type="text/css" media="print" href="../css/print.css" />
+
</head>
<body>
<script>
Modified: logback/trunk/logback-site/src/site/pages/manual/layouts.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/layouts.html (original)
+++ logback/trunk/logback-site/src/site/pages/manual/layouts.html Tue Mar 6 20:11:05 2007
@@ -720,8 +720,8 @@
<td align="center">
<b>ex</b>{<em>length</em>} <br />
<b>throwable</b>{<em>length</em>} <br />
- <b>ex{length, evaluator-1, ..., evaluator-n}</b>
- <b>throwable{length, evaluator-1, ..., evaluator-n}</b>
+ <b>ex</b>{length, evaluator-1, ..., evaluator-n} <br />
+ <b>throwable</b>{length, evaluator-1, ..., evaluator-n}
</td>
<td>
@@ -948,12 +948,12 @@
<td align="center"><pre>[main.Name ]</pre></td>
</tr>
<tr class="b">
- <td align="center">[%20.-20logger]</td>
+ <td align="center">[%20.20logger]</td>
<td align="center">main.Name</td>
<td align="center"><pre>[ main.Name]</pre></td>
</tr>
<tr class="a">
- <td align="center">[%-10.10logger]</td>
+ <td align="center">[%10.10logger]</td>
<td align="center">main.foo.foo.bar.Name</td>
<td align="center"><pre>[o.bar.Name]</pre></td>
</tr>
@@ -986,7 +986,7 @@
</appender></pre></div>
-
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<h4>Evaluators</h4>
<p>
@@ -1087,14 +1087,15 @@
}
}</pre></div>
<p>
- This excerpt does nothing too fancy. Five logging requests
- are issued, the third one being different from the others.
+ The above application does nothing too fancy. Five logging
+ requests are issued, the third one being different from the
+ others.
</p>
<p>
- When a logging request is sent, the corresponding logging
- event will pass through the evaluation process. Here,
- the third request will match the evaluation,
- causing its caller data to be displayed.
+ When a logging request is sent, the corresponding logging event
+ will pass through the evaluation process. Here, the third
+ request will match the evaluation criteria, causing its caller
+ data to be displayed.
</p>
<p>
Here is the output of the
@@ -1109,23 +1110,27 @@
0 [main] DEBUG - I know me 4</pre></div>
- <p>
- Of course, one can change the expression to match a real
- world situation. An expression testing logger name and
- request level could also be meaningful: all logging requests of
- level <em>WARN</em> and up, coming from a sensible part of an application
- like a financial transaction module, would have their caller data displayed.
- </p>
- <p><b>Important:</b> With the <em>caller</em> conversion specifier, the data is
- displayed when <em>the expression evaluates to <b>true</b>.</em></p>
- <p>
- Let us look at a different situation. When exceptions are included in
- a logging request, their stack trace is usually displayed. However, in some cases,
- one might want to supress the stack trace of specific exception.
+ <p>One can change the expression to match a real world
+ situation. An expression testing logger name and request level
+ could also be meaningful: all logging requests of level
+ <em>WARN</em> and up, coming from a sensible part of an
+ application like a financial transaction module, would have their
+ caller data displayed.
+ </p>
+
+ <p><b>Important:</b> With the <em>caller</em> conversion
+ specifier, the data is displayed when <em>the expression evaluates
+ to <b>true</b>.</em></p>
+
+ <p>Now, let us look at a different situation. When exceptions are
+ included in a logging request, their stack trace is usually
+ displayed. However, in some cases, one might want to supress the
+ stack trace of specific exception.
</p>
+
<p>The java code shown below creates five log requests, each one
- with an exception. However, we do not want to have the stack trace of the
- third request to be output.</p>
+ with an exception. However, we do not want to have the stack trace
+ of the third request to be output.</p>
<div class="source"><pre>package chapter5;
Modified: logback/trunk/logback-site/src/site/pages/manual/mdc.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/mdc.html (original)
+++ logback/trunk/logback-site/src/site/pages/manual/mdc.html Tue Mar 6 20:11:05 2007
@@ -4,6 +4,8 @@
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Chapter 7: Diagnostic Context</title>
<link rel="stylesheet" type="text/css" media="screen" href="../css/site.css" />
+<link rel="stylesheet" type="text/css" media="print" href="../css/print.css" />
+
</head>
<body>
<script>
Modified: logback/trunk/logback-site/src/site/pages/team.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/team.html (original)
+++ logback/trunk/logback-site/src/site/pages/team.html Tue Mar 6 20:11:05 2007
@@ -28,11 +28,14 @@
<table>
<tr>
<td><img src="images/jeannoel.gif" alt="Jean-Noel"/></td>
- <td>
- Jean-Noel Charpin has been designing and developing object oriented software
- and decision making systems since 1998. He is particularly interested in
- translating lean manufacturing principles and practices to the software development
- domain in order to improve quality and reliability.
+
+ <td>
+ <p>Jean-Noel Charpin has been designing and developing object
+ oriented software and decision making systems since 1998. He
+ is particularly interested in translating lean manufacturing
+ principles and practices to the software development domain
+ in order to improve quality and reliability.
+ </p>
</td>
</tr>
<tr>
@@ -42,7 +45,7 @@
since 1996. He is the founder of the log4j, slf4j and
logback projects. Ceki enjoys writing software, a task far
more difficult and time-consuming than what it seems at
- first sight. His interests range from cryptography, systems
+ first sight. His interests range from cryptography, system
monitoring and testing to application interoperability.
</p>
Modified: logback/trunk/logback-site/src/site/pages/templates/right.js
==============================================================================
--- logback/trunk/logback-site/src/site/pages/templates/right.js (original)
+++ logback/trunk/logback-site/src/site/pages/templates/right.js Tue Mar 6 20:11:05 2007
@@ -1,6 +1,6 @@
document.write('<p class="menu_header">New and noteworthy</p>')
-document.write('<p class="menu"><a href="10reasons.ppt">10 reasons for migrating</a>')
+document.write('<p class="menu"><a href="'+prefix+'10reasons.ppt">10 reasons for migrating</a>')
document.write('<p class="menu"><a href="http://javablog.smilehouse.com/blog/default/Java/2007/02/02/Writing-rotated…">Writing rotated and compressed access logs</a>')
1
0
Online report : http://localhost:8090/continuum/servlet/continuum/target/ProjectBuild.vm/vi…
Build statistics:
State: Ok
Previous State: Failed
Started at: Tue, 6 Mar 2007 09:49:58 +0100
Finished at: Tue, 6 Mar 2007 09:50:07 +0100
Total time: 8s
Build Trigger: Forced
Exit code: 0
Building machine hostname: pixie
Operating system : Linux(unknown)
Java version : 1.5.0_08(Sun Microsystems Inc.)
Changes
No files changed
****************************************************************************
Output:
****************************************************************************
[INFO] Scanning for projects...
[INFO] ----------------------------------------------------------------------------
[INFO] Building Logback Examples Module
[INFO] task-segment: [clean, install]
[INFO] ----------------------------------------------------------------------------
[INFO] [clean:clean]
[INFO] Deleting directory /opt/continuum-1.0.3/apps/continuum/working-directory/50/target
[INFO] Deleting directory /opt/continuum-1.0.3/apps/continuum/working-directory/50/target/classes
[INFO] Deleting directory /opt/continuum-1.0.3/apps/continuum/working-directory/50/target/test-classes
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
Compiling 49 source files to /opt/continuum-1.0.3/apps/continuum/working-directory/50/target/classes
[INFO] [resources:testResources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:testCompile]
[INFO] No sources to compile
[INFO] [surefire:test]
[INFO] No tests to run.
[INFO] [jar:jar]
[INFO] Building jar: /opt/continuum-1.0.3/apps/continuum/working-directory/50/target/logback-examples-0.9.3-SNAPSHOT.jar
[INFO] Preparing source:jar
[WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation.
[INFO] No goals needed for project - skipping
[INFO] [source:jar {execution: default}]
[INFO] Building jar: /opt/continuum-1.0.3/apps/continuum/working-directory/50/target/logback-examples-0.9.3-SNAPSHOT-sources.jar
[INFO] [install:install]
[INFO] Installing /opt/continuum-1.0.3/apps/continuum/working-directory/50/target/logback-examples-0.9.3-SNAPSHOT.jar to /root/.m2/repository/ch/qos/logback/logback-examples/0.9.3-SNAPSHOT/logback-examples-0.9.3-SNAPSHOT.jar
[INFO] Installing /opt/continuum-1.0.3/apps/continuum/working-directory/50/target/logback-examples-0.9.3-SNAPSHOT-sources.jar to /root/.m2/repository/ch/qos/logback/logback-examples/0.9.3-SNAPSHOT/logback-examples-0.9.3-SNAPSHOT-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 seconds
[INFO] Finished at: Tue Mar 06 09:50:06 CET 2007
[INFO] Final Memory: 15M/143M
[INFO] ------------------------------------------------------------------------
****************************************************************************
1
0
Online report : http://localhost:8090/continuum/servlet/continuum/target/ProjectBuild.vm/vi…
Build statistics:
State: Ok
Previous State: Failed
Started at: Tue, 6 Mar 2007 09:49:36 +0100
Finished at: Tue, 6 Mar 2007 09:49:53 +0100
Total time: 17s
Build Trigger: Forced
Exit code: 0
Building machine hostname: pixie
Operating system : Linux(unknown)
Java version : 1.5.0_08(Sun Microsystems Inc.)
Changes
No files changed
****************************************************************************
Output:
****************************************************************************
[INFO] Scanning for projects...
[INFO] ----------------------------------------------------------------------------
[INFO] Building Logback Access Module
[INFO] task-segment: [clean, install]
[INFO] ----------------------------------------------------------------------------
[INFO] [clean:clean]
[INFO] Deleting directory /opt/continuum-1.0.3/apps/continuum/working-directory/47/target
[INFO] Deleting directory /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/classes
[INFO] Deleting directory /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/test-classes
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
Compiling 64 source files to /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/classes
[INFO] [retrotranslator:translate {execution: default}]
[INFO] Transforming 80 file(s) from /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/classes to /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/logback-access-0.9.3-SNAPSHOT-jdk14.jar.
[INFO] Transformation of 80 file(s) completed successfully.
[INFO] [resources:testResources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:testCompile]
Compiling 22 source files to /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/test-classes
[INFO] [surefire:test]
[INFO] Surefire report directory: /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running ch.qos.logback.access.db.DBAppenderTest
[Server@2d92b996]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@2d92b996]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@2d92b996]: [Thread[main,5,main]]: setDatabaseName(0,test)
[Server@2d92b996]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@2d92b996]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@2d92b996]: [Thread[main,5,main]]: setDatabasePath(0,mem:test;sql.enforce_strict_size=true)
[Server@4e99353f]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@4e99353f]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@4e99353f]: [Thread[main,5,main]]: setDatabaseName(0,test)
[Server@4e99353f]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@4e99353f]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@4e99353f]: [Thread[main,5,main]]: setDatabasePath(0,mem:test;sql.enforce_strict_size=true)
[Server@5f989f84]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@5f989f84]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@5f989f84]: [Thread[main,5,main]]: setDatabaseName(0,test)
[Server@5f989f84]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@5f989f84]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@5f989f84]: [Thread[main,5,main]]: setDatabasePath(0,mem:test;sql.enforce_strict_size=true)
[Server@b551d7f]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@b551d7f]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@b551d7f]: [Thread[main,5,main]]: setDatabaseName(0,test)
[Server@b551d7f]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@b551d7f]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@b551d7f]: [Thread[main,5,main]]: setDatabasePath(0,mem:test;sql.enforce_strict_size=true)
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.242 sec
Running ch.qos.logback.access.jetty.JettyBasicTest
2007-03-06 09:49:51.179::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2007-03-06 09:49:51.249::INFO: jetty-6.1.1
2007-03-06 09:49:51.306::INFO: Started SelectChannelConnector @ 0.0.0.0:1234
06/03/2007:09:49:51 +0100 localhost 127.0.0.1
06/03/2007:09:49:51 +0100 localhost 127.0.0.1
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.255 sec
Running ch.qos.logback.access.filter.AccessStatsTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 sec
Running ch.qos.logback.access.pattern.ConverterTest
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.03 sec
Running ch.qos.logback.access.filter.StatsByDayTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec
Running ch.qos.logback.access.net.URLEvaluatorTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec
Running ch.qos.logback.access.net.SocketAppenderTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.133 sec
Results :
Tests run: 29, Failures: 0, Errors: 0, Skipped: 0
[INFO] [jar:jar]
[INFO] Building jar: /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/logback-access-0.9.3-SNAPSHOT.jar
[INFO] Preparing source:jar
[WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation.
[INFO] No goals needed for project - skipping
[INFO] [source:jar {execution: default}]
[INFO] Building jar: /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/logback-access-0.9.3-SNAPSHOT-sources.jar
[INFO] [jar:jar {execution: bundle-test-jar}]
[INFO] [jar:test-jar {execution: bundle-test-jar}]
[INFO] Building jar: /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/logback-access-0.9.3-SNAPSHOT-tests.jar
[INFO] [install:install]
[INFO] Installing /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/logback-access-0.9.3-SNAPSHOT.jar to /root/.m2/repository/ch/qos/logback/logback-access/0.9.3-SNAPSHOT/logback-access-0.9.3-SNAPSHOT.jar
[INFO] Installing /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/logback-access-0.9.3-SNAPSHOT-sources.jar to /root/.m2/repository/ch/qos/logback/logback-access/0.9.3-SNAPSHOT/logback-access-0.9.3-SNAPSHOT-sources.jar
[INFO] Installing /opt/continuum-1.0.3/apps/continuum/working-directory/47/target/logback-access-0.9.3-SNAPSHOT-tests.jar to /root/.m2/repository/ch/qos/logback/logback-access/0.9.3-SNAPSHOT/logback-access-0.9.3-SNAPSHOT-tests.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15 seconds
[INFO] Finished at: Tue Mar 06 09:49:53 CET 2007
[INFO] Final Memory: 19M/192M
[INFO] ------------------------------------------------------------------------
****************************************************************************
1
0
Online report : http://localhost:8090/continuum/servlet/continuum/target/ProjectBuild.vm/vi…
Build statistics:
State: Failed
Previous State: Failed
Started at: Mon, 5 Mar 2007 17:20:40 +0100
Finished at: Mon, 5 Mar 2007 17:20:45 +0100
Total time: 5s
Build Trigger: Schedule
Exit code: 1
Building machine hostname: pixie
Operating system : Linux(unknown)
Java version : 1.5.0_08(Sun Microsystems Inc.)
Changes
seb updated due to changes in EventEvaluator
/logback/trunk/logback-examples/src/main/java/chapter4/mail/CounterBasedEvaluator.java
****************************************************************************
Output:
****************************************************************************
[INFO] Scanning for projects...
[INFO] ----------------------------------------------------------------------------
[INFO] Building Logback Examples Module
[INFO] task-segment: [clean, install]
[INFO] ----------------------------------------------------------------------------
[INFO] [clean:clean]
[INFO] Deleting directory /opt/continuum-1.0.3/apps/continuum/working-directory/50/target
[INFO] Deleting directory /opt/continuum-1.0.3/apps/continuum/working-directory/50/target/classes
[INFO] Deleting directory /opt/continuum-1.0.3/apps/continuum/working-directory/50/target/test-classes
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
Missing:
----------
1) ch.qos.logback:logback-access:jar:0.9.3-SNAPSHOT
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=ch.qos.logback -DartifactId=logback-access \
-Dversion=0.9.3-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file
Path to dependency:
1) ch.qos.logback:logback-examples:jar:0.9.3-SNAPSHOT
2) ch.qos.logback:logback-access:jar:0.9.3-SNAPSHOT
----------
1 required artifact is missing.
for artifact:
ch.qos.logback:logback-examples:jar:0.9.3-SNAPSHOT
from the specified remote repositories:
central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Mon Mar 05 17:20:45 CET 2007
[INFO] Final Memory: 10M/82M
[INFO] ------------------------------------------------------------------------
****************************************************************************
1
0