[05/13] brooklyn-server git commit: Add context to main stdout appender
Add context to main stdout appender Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/d4563338 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/d4563338 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/d4563338 Branch: refs/heads/master Commit: d45633380dff9cc098784e85fab8ddd9c7d1fbba Parents: 11740cc Author: Geoff MacartneyAuthored: Tue Jan 23 12:24:25 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../src/main/resources/brooklyn/logback-appender-stdout.xml| 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d4563338/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml -- diff --git a/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml b/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml index 0763e3b..e612042 100644 --- a/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml +++ b/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml @@ -21,7 +21,7 @@ - %d %-5level %msg%n%xEx{0} + %d %-5level %X{entity.ids} %msg%n%xEx{0} INFO
[11/13] brooklyn-server git commit: Remove redundant cast
Remove redundant cast Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/56bacd83 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/56bacd83 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/56bacd83 Branch: refs/heads/master Commit: 56bacd83daef1bb3d4596fbf0448909ea8c36e48 Parents: 661e40f Author: Geoff MacartneyAuthored: Fri Jan 26 17:54:32 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../src/main/java/org/apache/brooklyn/test/LogWatcher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/56bacd83/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java -- diff --git a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java index aa8aa0b..d41e1fa 100644 --- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java +++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java @@ -216,7 +216,7 @@ public class LogWatcher implements Closeable { logger.addAppender(this.appender); logger.setLevel(this.loggerLevel); logger.setAdditive(false); -watchedLoggers.add((ch.qos.logback.classic.Logger) logger); +watchedLoggers.add(logger); } }
[1/2] brooklyn-server git commit: BROOKLYN-576: decrease debug logging for resolved DSL
Repository: brooklyn-server Updated Branches: refs/heads/master d62a7b946 -> 1fcc80eca BROOKLYN-576: decrease debug logging for resolved DSL Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/33e0eeaa Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/33e0eeaa Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/33e0eeaa Branch: refs/heads/master Commit: 33e0eeaaf43e3209cc16b7c5e531c1bccdd1589b Parents: d62a7b9 Author: Aled SageAuthored: Wed Feb 14 13:56:05 2018 + Committer: Aled Sage Committed: Wed Feb 14 13:56:05 2018 + -- .../camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/33e0eeaa/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java -- diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java index 626f41d..9358e30 100644 --- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java +++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java @@ -117,12 +117,12 @@ public abstract class BrooklynDslDeferredSupplier implements DeferredSupplier throw Exceptions.propagate(e); } -if (log.isDebugEnabled()) { +if (log.isTraceEnabled()) { // https://issues.apache.org/jira/browse/BROOKLYN-269 // We must not log sensitve data, such as from $brooklyn:external, or if the value // is to be used as a password etc. Unfortunately we don't know the context, so can't // use Sanitizer.sanitize. -log.debug("Resolved "+dsl); +log.trace("Resolved "+dsl); } return result; }
[2/2] brooklyn-server git commit: This closes #948
This closes #948 Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/1fcc80ec Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/1fcc80ec Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/1fcc80ec Branch: refs/heads/master Commit: 1fcc80eca96db76e831b8492713005abbd1fb1f6 Parents: d62a7b9 33e0eea Author: Thomas BouronAuthored: Thu Feb 15 10:13:47 2018 + Committer: Thomas Bouron Committed: Thu Feb 15 10:13:47 2018 + -- .../camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --
[04/13] brooklyn-server git commit: Add code that gives a working MDC output in test
Add code that gives a working MDC output in test 2018-01-23 11:52:20,118 INFO [i6hk2jll5n, z2scr3kczj, hn242jl6bi] Hello from entity hn242jl6bi 2018-01-23 11:52:20,118 INFO [i6hk2jll5n, z2scr3kczj] Hello from entity z2scr3kczj 2018-01-23 11:52:20,118 INFO [i6hk2jll5n] Hello world 2018-01-23 11:52:20,128 INFO [i6hk2jll5n] Goodbye cruel world 2018-01-23 11:52:20,128 INFO [i6hk2jll5n, z2scr3kczj] Goodbye from entity z2scr3kczj 2018-01-23 11:52:20,129 INFO [i6hk2jll5n, z2scr3kczj, hn242jl6bi] Goodbye from entity hn242jl6bi Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/11740cc6 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/11740cc6 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/11740cc6 Branch: refs/heads/master Commit: 11740cc65a1121a0c272e78f68fd5dac012b8fb9 Parents: 1f9446e Author: Geoff MacartneyAuthored: Fri Jan 19 18:01:55 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../util/core/task/BasicExecutionContext.java | 42 +- .../core/entity/ApplicationLoggingTest.java | 151 +++ .../brooklyn/logback-appender-stdout.xml| 35 + pom.xml | 2 +- 4 files changed, 227 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/11740cc6/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java -- diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java index 32ca5b7..2575464 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java @@ -19,9 +19,11 @@ package org.apache.brooklyn.util.core.task; import java.lang.reflect.Proxy; +import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Deque; import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; @@ -33,6 +35,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicReference; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.mgmt.ExecutionContext; @@ -55,6 +58,7 @@ import org.apache.brooklyn.util.time.CountdownTimer; import org.apache.brooklyn.util.time.Duration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.slf4j.MDC; import com.google.common.annotations.Beta; import com.google.common.base.Function; @@ -66,10 +70,12 @@ import com.google.common.collect.Iterables; * (so that it can look like an {@link Executor} and also supply {@link ExecutorService#submit(Callable)} */ public class BasicExecutionContext extends AbstractExecutionContext { - + private static final Logger log = LoggerFactory.getLogger(BasicExecutionContext.class); static final ThreadLocal perThreadExecutionContext = new ThreadLocal(); +public static final String ENTITY_IDS = "entity.ids"; + public static BasicExecutionContext getCurrentExecutionContext() { return perThreadExecutionContext.get(); } final ExecutionManager executionManager; @@ -221,9 +227,16 @@ public class BasicExecutionContext extends AbstractExecutionContext { SimpleFuture future = new SimpleFuture<>(); Throwable error = null; +final Set taskTags = task.getTags(); +Entity target = BrooklynTaskTags.getWrappedEntityOfType(taskTags, BrooklynTaskTags.TARGET_ENTITY); +final AtomicReference loggingContext = new AtomicReference<>(); + try { ((BasicExecutionManager)executionManager).afterSubmitRecordFuture(task, future); ((BasicExecutionManager)executionManager).beforeStartInSameThreadTask(null, task); +if (target != null) { +loggingContext.set(MDC.putCloseable(ENTITY_IDS, idStack(target).toString())); +} return future.set(job.call()); } catch (Exception e) { @@ -237,6 +250,10 @@ public class BasicExecutionContext extends AbstractExecutionContext { try { ((BasicExecutionManager)executionManager).afterEndInSameThreadTask(null, task, error); } finally { +final MDC.MDCCloseable context = loggingContext.get(); +
[03/13] brooklyn-server git commit: Format line
Format line Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/2c81f63e Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/2c81f63e Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/2c81f63e Branch: refs/heads/master Commit: 2c81f63ed63c92e494abdbcb12eeb65fd4643c99 Parents: 56bacd8 Author: Geoff MacartneyAuthored: Fri Jan 26 17:54:54 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../src/main/java/org/apache/brooklyn/test/LogWatcher.java| 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/2c81f63e/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java -- diff --git a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java index d41e1fa..6eaefa3 100644 --- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java +++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java @@ -212,7 +212,8 @@ public class LogWatcher implements Closeable { this.appender.start(); for (String loggerName : loggerNames) { -final ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(checkNotNull(loggerName, "loggerName")); +final ch.qos.logback.classic.Logger logger = + (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(checkNotNull(loggerName, "loggerName")); logger.addAppender(this.appender); logger.setLevel(this.loggerLevel); logger.setAdditive(false);
[08/13] brooklyn-server git commit: Re-use pattern layout from logback-appender-stdout.xml
Re-use pattern layout from logback-appender-stdout.xml Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/661e40fc Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/661e40fc Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/661e40fc Branch: refs/heads/master Commit: 661e40fc18805b975cd46f8e4e3b3d97b12258c6 Parents: df73520 Author: Geoff MacartneyAuthored: Fri Jan 26 17:53:59 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../main/java/org/apache/brooklyn/test/LogWatcher.java| 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/661e40fc/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java -- diff --git a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java index 176b295..aa8aa0b 100644 --- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java +++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java @@ -33,6 +33,7 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.function.BiPredicate; +import java.util.regex.Pattern; import org.apache.brooklyn.util.time.Time; import org.slf4j.Logger; @@ -51,6 +52,7 @@ import ch.qos.logback.classic.encoder.PatternLayoutEncoder; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.classic.spi.IThrowableProxy; import ch.qos.logback.classic.spi.StackTraceElementProxy; +import ch.qos.logback.core.Appender; import ch.qos.logback.core.ConsoleAppender; import ch.qos.logback.core.OutputStreamAppender; @@ -195,7 +197,13 @@ public class LogWatcher implements Closeable { } }; -ple.setPattern(" %d{ISO8601} %X{entity.ids} %-5.5p %3X{bundle.id} %c{1.} [%.16t] %m%n"); +// The code below makes the assumption that the (test) logger configuration has a console appender +// for root, with a pattern layout encoder, and re-uses its encoder pattern. +// This is (at time of writing) as defined in logback-appender-stdout.xml. +final Appender appender = lc.getLogger("ROOT").getAppender("STDOUT"); +final ConsoleAppender stdout = ConsoleAppender.class.cast(appender); +final PatternLayoutEncoder stdoutEncoder = PatternLayoutEncoder.class.cast(stdout.getEncoder()); +ple.setPattern(stdoutEncoder.getPattern()); ple.setContext(lc); ple.start();
[12/13] brooklyn-server git commit: Tidy up a bit
Tidy up a bit Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/83875637 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/83875637 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/83875637 Branch: refs/heads/master Commit: 83875637e119a76f73a976f883fc6aaa0460382b Parents: 19b06ba Author: Geoff MacartneyAuthored: Sat Jan 27 16:31:52 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../core/entity/ApplicationLoggingTest.java | 36 +++- .../org/apache/brooklyn/test/LogWatcher.java| 6 ++-- 2 files changed, 14 insertions(+), 28 deletions(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/83875637/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java -- diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java index 2e74593..4c075aa 100644 --- a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java @@ -18,9 +18,8 @@ */ package org.apache.brooklyn.core.entity; -import static com.google.common.base.Predicates.and; import static org.apache.brooklyn.test.LogWatcher.EventPredicates.containsMessage; -import static org.apache.brooklyn.test.LogWatcher.EventPredicates.matchesPatterns; +import static org.apache.brooklyn.test.LogWatcher.EventPredicates.matchingRegexes; import java.util.ArrayDeque; import java.util.Collection; @@ -41,17 +40,14 @@ import org.apache.brooklyn.core.test.entity.TestEntityImpl; import org.apache.brooklyn.test.LogWatcher; import org.apache.brooklyn.util.collections.QuorumCheck; import org.apache.brooklyn.util.exceptions.Exceptions; -import org.apache.brooklyn.util.text.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.Test; -import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; import ch.qos.logback.classic.Level; -import ch.qos.logback.classic.spi.ILoggingEvent; @Test public class ApplicationLoggingTest extends BrooklynAppUnitTestSupport { @@ -156,14 +152,19 @@ public class ApplicationLoggingTest extends BrooklynAppUnitTestSupport { assertHealthEventually(app, Lifecycle.RUNNING, true); app.stop(); assertHealthEventually(app, Lifecycle.STOPPED, false); -watcher.assertHasEvent(matchesPatterns(".*" + app.getApplicationId() + ".*Hello world.*")); -watcher.assertHasEvent(matchesPatterns(".*" -+ ImmutableList.of(app.getId(), entity.getId()).toString() -+ ".*from entity.*" + entity.getId() + ".*")); -watcher.assertHasEvent(matchesPatterns(".*" + + +// Look for output like +// 2018-01-27 16:25:52,386 INFO [dwym20xr82, b1babwc34d, se1d2nn62j] Hello from entity se1d2nn62j +// 2018-01-27 16:25:52,388 INFO [dwym20xr82, b1babwc34d] Hello from entity b1babwc34d +// 2018-01-27 16:25:52,389 INFO [dwym20xr82] Hello world +// 2018-01-27 16:25:52,399 INFO [dwym20xr82] Goodbye cruel world +// 2018-01-27 16:25:52,400 INFO [dwym20xr82, b1babwc34d] Goodbye from entity b1babwc34d +// 2018-01-27 16:25:52,401 INFO [dwym20xr82, b1babwc34d, se1d2nn62j] Goodbye from entity se1d2nn62j +watcher.assertHasEvent(matchingRegexes(".*" + app.getApplicationId() + ".*Hello world.*"));; +watcher.assertHasEvent(matchingRegexes(".*" + ImmutableList.of(app.getId(), entity.getId()).toString() + ".*from entity.*" + entity.getId() + ".*")); -watcher.assertHasEvent(matchesPatterns(".*" + +watcher.assertHasEvent(matchingRegexes(".*" + ImmutableList.of(app.getId(), entity.getId(), child.getId()).toString() + ".*from entity.*" + child.getId() + ".*")); } finally { @@ -171,19 +172,6 @@ public class ApplicationLoggingTest extends BrooklynAppUnitTestSupport { } } - -@Test -public void testOne() { -LogWatcher watcher = new LogWatcher(LOG.getName(), Level.DEBUG, Predicates.alwaysTrue()); - -watcher.start(); -try { -LOG.error("Test message"); -} finally { -watcher.close(); -} -} - private void assertHealthEventually(Entity entity, Lifecycle
[06/13] brooklyn-server git commit: Assert on log output
Assert on log output Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/643aa9c1 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/643aa9c1 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/643aa9c1 Branch: refs/heads/master Commit: 643aa9c1e4643b37ec96f7dcebfcf4cb3c78c6bd Parents: d456333 Author: Geoff MacartneyAuthored: Fri Jan 26 17:38:34 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../core/entity/ApplicationLoggingTest.java | 51 +++- .../brooklyn/logback-appender-stdout.xml| 35 - .../org/apache/brooklyn/test/LogWatcher.java| 131 --- 3 files changed, 129 insertions(+), 88 deletions(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/643aa9c1/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java -- diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java index 3fc57ec..2e74593 100644 --- a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java @@ -18,6 +18,10 @@ */ package org.apache.brooklyn.core.entity; +import static com.google.common.base.Predicates.and; +import static org.apache.brooklyn.test.LogWatcher.EventPredicates.containsMessage; +import static org.apache.brooklyn.test.LogWatcher.EventPredicates.matchesPatterns; + import java.util.ArrayDeque; import java.util.Collection; import java.util.Deque; @@ -34,15 +38,21 @@ import org.apache.brooklyn.core.test.entity.TestApplication; import org.apache.brooklyn.core.test.entity.TestApplicationImpl; import org.apache.brooklyn.core.test.entity.TestEntity; import org.apache.brooklyn.core.test.entity.TestEntityImpl; +import org.apache.brooklyn.test.LogWatcher; import org.apache.brooklyn.util.collections.QuorumCheck; import org.apache.brooklyn.util.exceptions.Exceptions; +import org.apache.brooklyn.util.text.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.slf4j.MDC; import org.testng.annotations.Test; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.spi.ILoggingEvent; + @Test public class ApplicationLoggingTest extends BrooklynAppUnitTestSupport { private static final Logger LOG = LoggerFactory.getLogger(ApplicationLoggingTest.class); @@ -131,18 +141,49 @@ public class ApplicationLoggingTest extends BrooklynAppUnitTestSupport { @Test public void testLogging() throws Exception { +String loggerName = ApplicationLoggingTest.class.getName(); +ch.qos.logback.classic.Level logLevel = ch.qos.logback.classic.Level.INFO; Deque ids = new ArrayDeque<>(); ids.push(app.getId()); final TestEntityWithLogging entity = app.createAndManageChild(EntitySpec.create(TestEntityWithLogging.class)); final TestEntityWithLogging child = entity.addChild(EntitySpec.create(EntitySpec.create(TestEntityWithLogging.class))); -app.start(ImmutableList.of(app.newSimulatedLocation())); -assertHealthEventually(app, Lifecycle.RUNNING, true); -app.stop(); -assertHealthEventually(app, Lifecycle.STOPPED, false); +LogWatcher watcher = new LogWatcher(loggerName, logLevel, containsMessage(app.getId())); + +watcher.start(); +try { +app.start(ImmutableList.of(app.newSimulatedLocation())); +assertHealthEventually(app, Lifecycle.RUNNING, true); +app.stop(); +assertHealthEventually(app, Lifecycle.STOPPED, false); +watcher.assertHasEvent(matchesPatterns(".*" + app.getApplicationId() + ".*Hello world.*")); +watcher.assertHasEvent(matchesPatterns(".*" ++ ImmutableList.of(app.getId(), entity.getId()).toString() ++ ".*from entity.*" + entity.getId() + ".*")); +watcher.assertHasEvent(matchesPatterns(".*" + +ImmutableList.of(app.getId(), entity.getId()).toString() ++ ".*from entity.*" + entity.getId() + ".*")); +watcher.assertHasEvent(matchesPatterns(".*" + +ImmutableList.of(app.getId(), entity.getId(), child.getId()).toString() ++ ".*from entity.*" + child.getId() + ".*")); +} finally { +watcher.close(); +} } +
[02/13] brooklyn-server git commit: Avoid spaces in entity list
Avoid spaces in entity list Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/eac895ec Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/eac895ec Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/eac895ec Branch: refs/heads/master Commit: eac895ecff79bb77070dfac8581e5cf457e02c6a Parents: 2d13332 Author: Geoff MacartneyAuthored: Fri Feb 2 18:01:37 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../brooklyn/util/core/task/BasicExecutionContext.java | 8 .../brooklyn/core/entity/ApplicationLoggingTest.java | 13 +++-- 2 files changed, 11 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/eac895ec/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java -- diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java index c32485a..a3f33f7 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java @@ -237,7 +237,7 @@ public class BasicExecutionContext extends AbstractExecutionContext { ((BasicExecutionManager)executionManager).afterSubmitRecordFuture(task, future); ((BasicExecutionManager)executionManager).beforeStartInSameThreadTask(null, task); if (target != null) { -entityMDC.set(MDC.putCloseable(ENTITY_IDS, idStack(target).toString())); +entityMDC.set(MDC.putCloseable(ENTITY_IDS, idStack(target))); taskMDC.set(MDC.putCloseable(TASK_ID, task.getId())); } return future.set(job.call()); @@ -386,7 +386,7 @@ public class BasicExecutionContext extends AbstractExecutionContext { public Void apply(Task it) { registerPerThreadExecutionContext(); if (target != null) { -entityMDC.set(MDC.putCloseable(ENTITY_IDS, idStack(target).toString())); +entityMDC.set(MDC.putCloseable(ENTITY_IDS, idStack(target))); taskMDC.set(MDC.putCloseable(TASK_ID, it.getId())); } if (startCallback!=null) BasicExecutionManager.invokeCallback(startCallback, it); @@ -418,7 +418,7 @@ public class BasicExecutionContext extends AbstractExecutionContext { } } -private Deque idStack(Entity target) { +private String idStack(Entity target) { Deque ids = new ArrayDeque<>(); Entity e = target; ids.push(e.getId()); @@ -426,7 +426,7 @@ public class BasicExecutionContext extends AbstractExecutionContext { e = e.getParent(); ids.push(e.getId()); } -return ids; +return ids.toString().replace(" ", ""); } private static class ContextSwitchingInfo { http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/eac895ec/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java -- diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java index 830358f..f5ec4b9 100644 --- a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java @@ -166,12 +166,13 @@ public class ApplicationLoggingTest extends BrooklynAppUnitTestSupport { assertHealthEventually(app, Lifecycle.STOPPED, false); // Look for output like -// 2018-02-02 17:26:20,481 INFO LxwcJM6p@[i13ysr26ou, bb0ptkb284, xl760xm9dc] Hello from entity xl760xm9dc -// 2018-02-02 17:26:20,484 INFO Wv3r7mmH@[i13ysr26ou, bb0ptkb284] Hello from entity bb0ptkb284 -// 2018-02-02 17:26:20,485 INFO P3omDOqq@[i13ysr26ou] Hello world -// 2018-02-02 17:26:20,497 INFO KKKPujW4@[i13ysr26ou] Goodbye cruel world -// 2018-02-02 17:26:20,498 INFO NR5pk9h4@[i13ysr26ou, bb0ptkb284] Goodbye from entity bb0ptkb284 -// 2018-02-02 17:26:20,499 INFO KHMVOAp4@[i13ysr26ou, bb0ptkb284, xl760xm9dc] Goodbye from entity xl760xm9dc +//2018-02-02 18:00:39,351 INFO xJTIhVuy@[ixxmgfzjos,m5it71jfiw,kw18pflnqp] Hello from entity kw18pflnqp +//2018-02-02 18:00:39,354 INFO
[07/13] brooklyn-server git commit: Use ConsoleAppender in LogWatcher
Use ConsoleAppender in LogWatcher Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/df735204 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/df735204 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/df735204 Branch: refs/heads/master Commit: df7352048051721952a9f082f1df31b7bc8c54b2 Parents: 643aa9c Author: Geoff MacartneyAuthored: Fri Jan 26 17:41:02 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../java/org/apache/brooklyn/test/LogWatcher.java | 14 -- 1 file changed, 4 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/df735204/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java -- diff --git a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java index 16d27b0..176b295 100644 --- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java +++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java @@ -51,6 +51,7 @@ import ch.qos.logback.classic.encoder.PatternLayoutEncoder; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.classic.spi.IThrowableProxy; import ch.qos.logback.classic.spi.StackTraceElementProxy; +import ch.qos.logback.core.ConsoleAppender; import ch.qos.logback.core.OutputStreamAppender; /** @@ -155,7 +156,7 @@ public class LogWatcher implements Closeable { private final List events = Collections.synchronizedList(Lists.newLinkedList()); private final AtomicBoolean closed = new AtomicBoolean(); private final ch.qos.logback.classic.Level loggerLevel; -private final OutputStreamAppender appender; +private final ConsoleAppender appender; private final List watchedLoggers = Lists.newArrayList(); private volatile Map origLevels = Maps.newLinkedHashMap(); @@ -169,14 +170,7 @@ public class LogWatcher implements Closeable { this.loggerLevel = checkNotNull(loggerLevel, "loggerLevel"); LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); -this.appender = new OutputStreamAppender() { -@Override -protected void append(ILoggingEvent event) { -super.append(event); - -LOG.trace("level="+event.getLevel()+"; event="+event+"; msg="+event.getFormattedMessage()); -} -}; +this.appender = new ConsoleAppender<>(); PatternLayoutEncoder ple = new PatternLayoutEncoder() { @Override @@ -195,6 +189,7 @@ public class LogWatcher implements Closeable { if (event != null && filter.apply(formatted)) { events.add(formatted); } +LOG.trace("level="+event.getLevel()+"; event="+event+"; msg="+event.getFormattedMessage()); super.doEncode(event); } @@ -206,7 +201,6 @@ public class LogWatcher implements Closeable { this.appender.setContext(lc); this.appender.setEncoder(ple); -this.appender.setOutputStream(System.out); this.appender.start(); for (String loggerName : loggerNames) {
[01/13] brooklyn-server git commit: Make cosmetic tweak to logging output
Repository: brooklyn-server Updated Branches: refs/heads/master 1fcc80eca -> 95698eadb Make cosmetic tweak to logging output Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/1fb6e3de Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/1fb6e3de Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/1fb6e3de Branch: refs/heads/master Commit: 1fb6e3deb5030467b50fb50998d8b3e1961f169c Parents: eac895e Author: Geoff MacartneyAuthored: Mon Feb 5 16:25:49 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../core/entity/ApplicationLoggingTest.java | 16 .../resources/brooklyn/logback-appender-stdout.xml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1fb6e3de/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java -- diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java index f5ec4b9..66c2e92 100644 --- a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java @@ -166,14 +166,14 @@ public class ApplicationLoggingTest extends BrooklynAppUnitTestSupport { assertHealthEventually(app, Lifecycle.STOPPED, false); // Look for output like -//2018-02-02 18:00:39,351 INFO xJTIhVuy@[ixxmgfzjos,m5it71jfiw,kw18pflnqp] Hello from entity kw18pflnqp -//2018-02-02 18:00:39,354 INFO hqSMSJKm@[ixxmgfzjos,m5it71jfiw] Hello from entity m5it71jfiw -//2018-02-02 18:00:39,354 INFO fCW0mP92@[ixxmgfzjos] Hello world -//2018-02-02 18:00:39,365 INFO @ Stop task id is nxLdBOiG -//2018-02-02 18:00:39,366 INFO nxLdBOiG@[ixxmgfzjos] Goodbye cruel world -//2018-02-02 18:00:39,367 INFO hniq2zjE@[ixxmgfzjos,m5it71jfiw] Goodbye from entity m5it71jfiw -//2018-02-02 18:00:39,369 INFO cFmqxDkJ@[ixxmgfzjos,m5it71jfiw,kw18pflnqp] Goodbye from entity kw18pflnqp -watcher.assertHasEvent(containsMessage(stopId + "@")); +// 2018-02-05 16:23:11,485 INFO K09KEX1U-[y4lgil3hya,xn0fmqrhzd,khx0py82ba] Hello from entity khx0py82ba +// 2018-02-05 16:23:11,488 INFO kD8Q76x0-[y4lgil3hya,xn0fmqrhzd] Hello from entity xn0fmqrhzd +// 2018-02-05 16:23:11,488 INFO ZsU4OGEp-[y4lgil3hya] Hello world +// 2018-02-05 16:23:11,496 INFO - Stop task id is pOp03ybS +// 2018-02-05 16:23:11,498 INFO pOp03ybS-[y4lgil3hya] Goodbye cruel world +// 2018-02-05 16:23:11,499 INFO c1Pcn3FR-[y4lgil3hya,xn0fmqrhzd] Goodbye from entity xn0fmqrhzd +// 2018-02-05 16:23:11,500 INFO eq9akWgK-[y4lgil3hya,xn0fmqrhzd,khx0py82ba] Goodbye from entity khx0py82ba +watcher.assertHasEvent(containsMessage(stopId + "-")); watcher.assertHasEvent(matchingRegexes(".*" + app.getApplicationId() + ".*Hello world.*"));; watcher.assertHasEvent(matchingRegexes(".*" + ImmutableList.of(app.getId(), entity.getId()).toString() http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1fb6e3de/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml -- diff --git a/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml b/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml index 08b7f9f..61ca1ef 100644 --- a/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml +++ b/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml @@ -21,7 +21,7 @@ - %d %-5level %X{task.id}@%X{entity.ids} %msg%n%xEx{0} + %d %-5level %X{task.id}-%X{entity.ids} %msg%n%xEx{0} INFO
[09/13] brooklyn-server git commit: Add comments explaining handling of pattern layout
Add comments explaining handling of pattern layout Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/19b06ba2 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/19b06ba2 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/19b06ba2 Branch: refs/heads/master Commit: 19b06ba2876e40e29387389f5aa033697f846b2a Parents: 2c81f63 Author: Geoff MacartneyAuthored: Fri Jan 26 18:02:08 2018 + Committer: Geoff Macartney Committed: Fri Feb 9 21:09:20 2018 + -- .../src/main/java/org/apache/brooklyn/test/LogWatcher.java| 7 +++ 1 file changed, 7 insertions(+) -- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/19b06ba2/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java -- diff --git a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java index 6eaefa3..3f6b002 100644 --- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java +++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java @@ -178,6 +178,11 @@ public class LogWatcher implements Closeable { @Override public void doEncode(ILoggingEvent event) throws IOException { final String txt = layout.doLayout(event); + +// Jump through hoops to turn the input event (without any layout) +// into one processed by the pattern layout, prior to applying the filter. +// Wrap the input event in a dynamic proxy to lay out the message/toString methods +// but delegate all other methods to the real input event ILoggingEvent formatted = (ILoggingEvent) Proxy.newProxyInstance( ILoggingEvent.class.getClassLoader(), new Class[]{ILoggingEvent.class}, @@ -188,6 +193,8 @@ public class LogWatcher implements Closeable { return method.invoke(event, args); } }); + +// now we can do the filter on the text that will be written to the log output if (event != null && filter.apply(formatted)) { events.add(formatted); }
[13/13] brooklyn-server git commit: This closes #940
This closes #940 Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/95698ead Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/95698ead Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/95698ead Branch: refs/heads/master Commit: 95698eadb6ddb710688367933840ba509a6c5fe9 Parents: 1fcc80e 1fb6e3d Author: Thomas BouronAuthored: Thu Feb 15 10:49:08 2018 + Committer: Thomas Bouron Committed: Thu Feb 15 10:49:08 2018 + -- .../util/core/task/BasicExecutionContext.java | 43 +++- .../core/entity/ApplicationLoggingTest.java | 194 +++ .../brooklyn/logback-appender-stdout.xml| 2 +- pom.xml | 2 +- .../org/apache/brooklyn/test/LogWatcher.java| 135 - 5 files changed, 326 insertions(+), 50 deletions(-) --