Great idea.

Some background for others: logback.xml is meant to be a single, global 
resource.

The challenge is that each Maven project has its own tests, so each need a 
logback.xml (or, more properly, logback-test.xml).

When run under Maven, only one test/resources directory will be in the class 
path, so only one logback-test.xml file will be found.

But, Eclipse seems to put all test/resources directories on the class path, 
resulting in conflicts. (I see this today for the many logback.xml files.)

Ideally, the logback-test.xml files would:

* Have a default level of ERROR
* Omit the SOCKET appender

This allows individual tests to use code to enable logging for the specific 
bits of code under tests. (See LogFixture and ExampleTest.)

When we’ve tried to do this in the past, we found that developers who use 
Lilith want the SOCKET appender set at DEBUG or finer. Hence, we get tons of 
output to the console when tests run. This is because, by default, Logback does 
not provide a way to set separate levels for console and socket appenders. 
(There seem to be plugins required, and that is where I ran out of time…)

So, in general, this would be a great improvement. We just need to find a path 
through the details mentioned above (plus any other issues that folks can 
identify.)

Thanks,

- Paul


> On Sep 5, 2017, at 11:15 AM, Vlad Rozov <vro...@apache.org> wrote:
> 
> I'd suggest to unify multiple logback.xml into a single or max 2 (one for 
> unit test and one for release) file. Any objections/cons to the proposal?
> 
> Thank you,
> 
> Vlad
> 
> 
> On 9/4/17 05:00, Vova Vysotskyi wrote:
>> Vlad Rozov, thanks for the idea to conditionally enable Lilith appender.
>> 
>> I agree with you that the order of logback.xml files is undefined. I
>> suppose that these files are used for debugging separate tests when
>> logback config file is set manually (-Dlogback.configurationFile).
>> 
>> 2017-09-01 22:49 GMT+00:00 Vlad Rozov <vro...@apache.org>:
>> 
>>> I'd suggest to conditionally enable lilith appender in logback.xml based
>>> on a property (for example drill.lilith.level). By default it can be set to
>>> OFF and lilith appender not being added to loggers specified in the
>>> logback.xml. An individual unit test can be executed with
>>> -Ddrill.lilith.level=DEBUG, in which case, the appender will be in effect
>>> if necessary.
>>> 
>>> I have a related question - there are several logback.xml in the
>>> drill/exec/java-exec: ./test/sh/logback.xml, ./test/resources/logback.xml
>>> and ./main/resources/logback.xml. on top of that, java-exec depends on
>>> drill-common-test that has it's own logback.xml and they all end up being
>>> on the classpath during unit test. Which one is used during unit test
>>> depends on their order in the classpath and my experience with maven
>>> dependency says that the order is undefined. Do I miss something here and
>>> there is an additional mechanism that resolves which logback configuration
>>> is in use?
>>> 
>>> Thank you,
>>> 
>>> Vlad
>>> 
>>> 
>>> 
>>> On 9/1/17 10:34, Jinfeng Ni wrote:
>>> 
>>>> If you run the whole unit test suite, you do not have to open Lilith at
>>>> the
>>>> same time. My experience is Lilith will significantly slow down unit test
>>>> suite running, and even fail testcases, as Drill's code put many DEBUG log
>>>> which chocked Lilith.
>>>> 
>>>> Lilith is useful only if you are running individual testcases to debug
>>>> certain issues.
>>>> 
>>>> 
>>>> 
>>>> On Fri, Sep 1, 2017 at 1:36 AM, Arina Yelchiyeva <
>>>> arina.yelchiy...@gmail.com
>>>> 
>>>>> wrote:
>>>>> I don't think that Lilith is critical for running unit tests. Since it is
>>>>> used to view the logs, I guess you can disable it by default but please
>>>>> leave the comment indicating the reason of the change.
>>>>> 
>>>>> Kind regards
>>>>> Arina
>>>>> 
>>>>> On Thu, Aug 31, 2017 at 2:06 PM, Vova Vysotskyi <vvo...@gmail.com>
>>>>> wrote:
>>>>> 
>>>>> Hi all,
>>>>>> I am having troubles when running Drill unit tests on the node where
>>>>>> Hiveserver2 service is running. In this case, run hangs in the middle.
>>>>>> It
>>>>>> is because Lilith and Hiveserver2 use the same port 10000.
>>>>>> I tried to change the Lilith port in the logback.xml, but we cannot
>>>>>> 
>>>>> change
>>>>> 
>>>>>> this port in Lilith UI (https://github.com/huxi/lilith/issues/10).
>>>>>> I have no other Ideas, how to avoid this issue without disabling Lilith
>>>>>> 
>>>>> or
>>>>> 
>>>>>> stopping HS2.
>>>>>> 
>>>>>> Do you mind if I disable Lilith SOCKET connection by default?
>>>>>> 
>>>>>> --
>>>>>> Kind regards,
>>>>>> Volodymyr Vysotskyi
>>>>>> 
>>>>>> 
>>> Thank you,
>>> 
>>> Vlad
>>> 
>> 
>> 
> 
> 
> Thank you,
> 
> Vlad

Reply via email to