Mike,

You could creat a custom logback confirm just for command line utils, 
logback-streamparse-cli.xml. Then set a system property either in the command 
line. It as the first line of your main method. 

java -Dlogback.configurationFile=/path/to/logback-streamparse-cli.xml 
my.MainClass

Or

public static void main() {
  System.setProperty("logback.configurationFile", pathToLogfile);
  ...
}

This way the config is picked up only for the command line utilities and not 
for the rest of the app. 

David

> On 10 May 2014, at 01:50, Tony Trinh <[email protected]> wrote:
> 
> If your intention was to set the effective level [1] for only your loggers, 
> you should reference your loggers by name instead of using the root logger. 
> For example, if all your logger names begin with "backtype.storm" and you 
> wanted only error-level messages, you would use:
> 
>   <configuration>
>      <appender ... />
>      <logger name="backtype.storm" level="ERROR"/>
>   </configuration>
> 
> Let me know if that works for you.
> 
> [1] http://logback.qos.ch/manual/architecture.html#effectiveLevel
> 
> -Tony
> 
> 
> 
>> On Fri, May 9, 2014 at 10:37 AM, Mike Sukmanowsky <[email protected]> wrote:
>> Hi there,
>> 
>> We're currently developing project called streamparse which provides 
>> Pythonic tools for realtime stream development using Apache Storm.
>> 
>> Although the project is Python-based, we maintain a command line interface, 
>> written in clojure, to provide JVM/Thrift interop capabilities 
>> https://github.com/Parsely/streamparse/tree/master/jvm.
>> 
>> A requirement of one of our commands is to write a JSON object 
>> representation to STDOUT which our Python process would read and use 
>> downstream.  The issue we have is that Apache Storm does some logging using 
>> logback upon calling certain functions which interferes with our expectation 
>> of only JSON being written to STDOUT.
>> 
>> $ ./sparsej list --json
>> 607  [main] INFO  backtype.storm.thrift - Connecting to Nimbus at 
>> localhost:6627
>> [{"status":"ACTIVE","num-executors":52,"name":"meta_enricher","num-workers":4,"num-tasks":52,"uptime-secs":1211495,"id":"meta_enricher-49-1398354650"},{"status":"ACTIVE","num-executors":9,"name":"visits","num-workers":4,"num-tasks":9,"uptime-secs":53668,"id":"visits-7-1399512477"},{"status":"ACTIVE","num-executors":80,"name":"ptrack","num-workers":4,"num-tasks":80,"uptime-secs":76148,"id":"ptrack-3-1399489997"}]
>> 
>> We added a logback-test.xml to a resources directory which is packaged with 
>> the JAR 
>> https://github.com/Parsely/streamparse/blob/master/jvm/resources/logback-test.xml.
>>   This isn't exactly what we want though since we really only need logging 
>> suppressed for the commands we run.  What we're finding when our JAR is 
>> packaged with other dependencies is that all logging is suppressed.
>> 
>> How can we go about suppressing logging for a single command like 
>> https://github.com/Parsely/streamparse/blob/master/jvm/src/streamparse/commands/list.clj?
>> 
>> Thanks! Mike
>> 
>> -- 
>> Mike Sukmanowsky
>> 
>> Product Lead, http://parse.ly
>> 12 W 31st Street
>> 8th floor
>> New York, NY  10001
>> p: +1 (416) 953-4248
>> e: [email protected]
>> 
>> _______________________________________________
>> Logback-user mailing list
>> [email protected]
>> http://mailman.qos.ch/mailman/listinfo/logback-user
> 
> _______________________________________________
> Logback-user mailing list
> [email protected]
> http://mailman.qos.ch/mailman/listinfo/logback-user
_______________________________________________
Logback-user mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user

Reply via email to