可以在XML中指定各种啊
   <appender name="CONSOLE1" 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{1}] %m%n"/>
      </layout>
   </appender>   <logger name="mypackage">
     <level value="OFF" />
   </logger>
   <logger name="mypackage2">
     <level value="INFO" />
     <appender-ref ref="CONSOLE1"/>
   </logger>这样就可以mypackage不输出,mypackage2按照CONSOLE1输出了

解决方案 »

  1.   

    老大 你这样是把整个包都给屏蔽掉了 不管你有几个log 这个mypackage就都不输出了
      

  2.   

    包名不同输出到不同文件就可以在上面的
       <logger name="mypackage2">
         <appender-ref ref="CONSOLE1"/>
       </logger>
    定义
    不同的级别输出到不同的文件,可以
    <appender name="CONSOLE1" class="org.apache.log4j.ConsoleAppender">
      <param name="Threshold" value="ERROR"/>
      ...
    </appender>的参数还限制
      

  3.   

    具体来说 我现在配置了2个appender,一个是控制台一个是输出到文件,那我现在想在info级别的时候 控制台不输出mypackage,但是日志文件中要输出这个mypackage的日志信息 这样如何设置?
      

  4.   

    对于输出到文件的appender应该是没有问题吧?mypackage引用这个appender就已经没有问题了但是对于控制台,你是指在info以下时不输出mypackage的日志,但是输出其它包的日志?
    这个好像我没有想到一个好办法
      

  5.   

    是阿 我考虑很久了 好像没有啥好的方式解决 不知道咋解决 实际上是这样的我们自己做了个框架,程序员应用框架的时候 我们框架自己定义的log信息 想输出到我们框架的日志文件中 里面不含有 程序员自己的日志信息
      

  6.   

    哥们 我想到了一个比较土的办法 不过配置起来可能简单些 ,我用log4j的filter控制,log4j有三个filter,其中一个是字符串屏蔽的,哪样我就要求在框架和应用的信息标识必须不同就可以了,这样就达到在appender一级屏蔽不同类包的目的了
      

  7.   

    对了 想再问兄弟一个问题 就是logger的继承关系阿 additivity不是用来配置多个logger的继承关系吗 应该如何写阿 我不管放在那个logger里面都报错 郁闷