You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Paul Rogers (JIRA)" <ji...@apache.org> on 2016/12/07 06:23:58 UTC

[jira] [Commented] (DRILL-5114) Rationalize use of Logback logging in unit tests

    [ https://issues.apache.org/jira/browse/DRILL-5114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15727865#comment-15727865 ] 

Paul Rogers commented on DRILL-5114:
------------------------------------

A note to Eclipse users. Maven includes only the src/test/resources folder for a single sub-project on the class path when running tests under Maven. Hence we need to have a Logback config file in each sub-project.

But, Eclipse puts the /src/test/resources for *all* projects on the class path. This will lead Logback to complain about finding multiple config files. To solve this, add the following to the default JVM args for all projects:

* Eclipse --> Preferences
* Java --> Installed JREs
* Choose your default JRE/JDK
* Click Edit...
* Add the following as the default JVM arguments:

{code}
-ea -Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener
{code}

The first turns on assertions, the second tells Logback not to display any of its own internal logging messages. 

> Rationalize use of Logback logging in unit tests
> ------------------------------------------------
>
>                 Key: DRILL-5114
>                 URL: https://issues.apache.org/jira/browse/DRILL-5114
>             Project: Apache Drill
>          Issue Type: Improvement
>    Affects Versions: 1.8.0
>            Reporter: Paul Rogers
>            Priority: Minor
>
> Drill uses Logback as its logger. The logger is used in several to display some test output. Test output is sent to stdout, rather than a log file. Since Drill also uses Logback, that same configuration sends much Drill logging output to stdout as well, cluttering test output.
> Logback requires that that one Logback config file (either logback.xml or hogback-test.xml) exist on the class path. Tests store the config file in the src/test/resources folder of each sub-project.
> These files set the default logging level to debug. While this setting is fine when working with individual tests, the output is overwhelming for bulk test runs.
> The first requested change is to set the default logging level to error.
> The existing config files are usually called "logback.xml." Change the name of test files to "logback-test.xml" to make clear that they are, in fact, test configs.
> The {{exec/java-exec/src/test/resources/logback.xml}} config file is a full version of Drill's production config file. Replace this with a config suitable for testing (that is, the same as other modules.)
> The java-exec project includes a production-like config file in its non-test sources: {{exec/java-exec/src/main/resources/logback.xml}}. Remove this as it is not needed. (Instead, rely on the one shipped in the distribution subsystem, which is the one copied to the Drill distribution.)
> Since Logback complains bitterly (via many log messages) when it cannot find a configuration file (and each sub-module must have its own test configuration), add missing logging configuration files:
> * exec/memory/base/src/test/resources/logback-test.xml
> * logical/src/test/resources/logback-test.xml



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)