
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Logback: the generic, reliable, fast and flexible logging framework.". The branch, master has been updated via 1169a18f6aac21cbbc1f2e60dfb7b75b2a2399a0 (commit) from 26a0a37ccb1107094b079154e1a2d0f8c41eb9b6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=1169a18f6aac21cbbc1f2e60d... http://github.com/ceki/logback/commit/1169a18f6aac21cbbc1f2e60dfb7b75b2a2399... commit 1169a18f6aac21cbbc1f2e60dfb7b75b2a2399a0 Author: Ceki Gulcu <ceki@qos.ch> Date: Tue Mar 6 22:17:13 2012 +0100 Fix LBCLASSIC-316 diff --git a/logback-core/src/main/java/ch/qos/logback/core/net/SMTPAppenderBase.java b/logback-core/src/main/java/ch/qos/logback/core/net/SMTPAppenderBase.java index fe57c1b..d9318d9 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/net/SMTPAppenderBase.java +++ b/logback-core/src/main/java/ch/qos/logback/core/net/SMTPAppenderBase.java @@ -328,17 +328,20 @@ public abstract class SMTPAppenderBase<E> extends AppenderBase<E> { sbuf.append(footer); } + String subjectStr = "Undefined subject"; if (subjectLayout != null) { - mimeMsg.setSubject(subjectLayout.doLayout(lastEventObject), - charsetEncoding); + subjectStr = subjectLayout.doLayout(lastEventObject); } + mimeMsg.setSubject(subjectStr, charsetEncoding); List<InternetAddress> destinationAddresses = parseAddress(lastEventObject); if (destinationAddresses.isEmpty()) { addInfo("Empty destination address. Aborting email transmission"); return; } - mimeMsg.setRecipients(Message.RecipientType.TO, destinationAddresses.toArray(EMPTY_IA_ARRAY)); + + InternetAddress[] toAddressArray = destinationAddresses.toArray(EMPTY_IA_ARRAY); + mimeMsg.setRecipients(Message.RecipientType.TO, toAddressArray); String contentType = layout.getContentType(); @@ -355,6 +358,7 @@ public abstract class SMTPAppenderBase<E> extends AppenderBase<E> { mimeMsg.setSentDate(new Date()); Transport.send(mimeMsg); + addInfo("Sent out SMTP message \""+subjectStr+"\" to "+Arrays.toString(toAddressArray)); } catch (Exception e) { addError("Error occurred while sending e-mail notification.", e); } diff --git a/logback-core/src/main/java/ch/qos/logback/core/sift/AppenderTrackerImpl.java b/logback-core/src/main/java/ch/qos/logback/core/sift/AppenderTrackerImpl.java index 59d1033..c5a361a 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/sift/AppenderTrackerImpl.java +++ b/logback-core/src/main/java/ch/qos/logback/core/sift/AppenderTrackerImpl.java @@ -108,6 +108,12 @@ public class AppenderTrackerImpl<E> implements AppenderTracker<E> { private boolean isEntryStale(Entry entry, long now) { + // stopped or improperly started appenders are considered stale + // see also http://jira.qos.ch/browse/LBCLASSIC-316 + if(!entry.value.isStarted()) + return true; + + // unused appenders are also considered stale return ((entry.timestamp + THRESHOLD) < now); } diff --git a/logback-core/src/test/java/ch/qos/logback/core/sift/Simulator.java b/logback-core/src/test/java/ch/qos/logback/core/sift/Simulator.java index 745b865..b9168cb 100644 --- a/logback-core/src/test/java/ch/qos/logback/core/sift/Simulator.java +++ b/logback-core/src/test/java/ch/qos/logback/core/sift/Simulator.java @@ -116,6 +116,7 @@ public class Simulator { Appender<Object> appender = appenderTracker.get(key, timestamp); if (appender == null) { appender = new NOPAppender<Object>(); + appender.start(); appenderTracker.put(key, appender, timestamp); } appenderTracker.stopStaleAppenders(timestamp); diff --git a/logback-site/src/site/pages/manual/appenders.html b/logback-site/src/site/pages/manual/appenders.html index 18c46b2..56cf6f9 100644 --- a/logback-site/src/site/pages/manual/appenders.html +++ b/logback-site/src/site/pages/manual/appenders.html @@ -2462,7 +2462,7 @@ logger.error(<b>notifyAdmin</b>, host, greatly facilitating problem diagnosis. </p> - <h4><a name= "bufferManagement" href="#bufferManagement">On buffer + <h4><a name= "bufferManagement" href="#bufferManagement">Buffer management in very busy systems</a></h4> <p>Internally, each distinct value returned by the discriminator diff --git a/logback-site/src/site/pages/news.html b/logback-site/src/site/pages/news.html index 0a6ba3f..1dadd0d 100644 --- a/logback-site/src/site/pages/news.html +++ b/logback-site/src/site/pages/news.html @@ -60,6 +60,12 @@ as reported by Chris Cheshire. </p> + <p>SiftingAppender will consider stale and consequently remove + nested appenders which are closed or improperly started. This + caters for the use case described in <a + href="http://jira.qos.ch/browse/LBCLASSIC-316">LBCLASSIC-316</a> + by Guus Bloemsma.</p> + <p><code>RequestLogImpl</code> can now lookup for the logback-access configuration file as a class path resource. This feature was requested in <a ----------------------------------------------------------------------- Summary of changes: .../ch/qos/logback/core/net/SMTPAppenderBase.java | 10 +++++++--- .../qos/logback/core/sift/AppenderTrackerImpl.java | 6 ++++++ .../java/ch/qos/logback/core/sift/Simulator.java | 1 + logback-site/src/site/pages/manual/appenders.html | 2 +- logback-site/src/site/pages/news.html | 6 ++++++ 5 files changed, 21 insertions(+), 4 deletions(-) hooks/post-receive -- Logback: the generic, reliable, fast and flexible logging framework.