tags:

views:

275

answers:

2

I'm experimenting writing a java SE swing application using joss weld. Weld configures logging with log4j using the following log4j.xml file in the jar:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!--

    JBoss, Home of Professional Open Source
    Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual
    contributors by the @authors tag. See the copyright.txt in the
    distribution for a full listing of individual contributors.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>
        <layout class="org.apache.log4j.PatternLayout">
            <!-- The default pattern: Date Priority [Category] Message\n -->
            <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{2}] %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.StringMatchFilter">
         <param name="AcceptOnMatch" value="false" />
         <param name="StringToMatch" value="Failure while notifying an observer of event [a]" />
        </filter>
    </appender>

    <!-- ############### Weld logging ################### -->

    <category name="org.jboss.weld">
        <priority value="INFO"/>
    </category>

    <root>
        <priority value="INFO"/>
        <appender-ref ref="CONSOLE"/>
    </root>

</log4j:configuration>

All I want to do is disable logging altogether in my application. I tried to disable it providing a log4j.properties file as follows:

log4j.debug=FALSE
log4j.rootLogger=OFF, CONSOLE

No matter what I try to do I cannot prevent the log4j messages from Weld to show up in the console. All I want to do is completely disable logging. But How?

A: 

Can't you simply remove the file log4j.properties from the jar ?

muriloq
I believe that would merely cause log4j to use its default properties instead.
glowcoder
Yes, but after he removes log4j.properties from the jar he can add a custom log4.properties to the classpath, using it to disable the logging. His previous attempt didn't work because the log4j.properties from the jar file was being loaded before the one he provided externally.
muriloq
A: 

If a log4j xml-format configuration file is present, it takes precedence over property files. That is log4j defined behavior. So you can put your configuration in log4j.xml and it should take effect.

Ted Beckett