zoukankan      html  css  js  c++  java
  • Solr 使用 Log4j

    原文出处:http://blog.chenlb.com/2010/08/solr-with-log4j.html

    Solr 默认是用 Jdk 的日志输出。还好 Solr 是使用 slf4j 日志库,可以方便换用其它日志输出。solr 使用 log4j 也不难。重新生成 solr.war

    把 solr.war 解压,然后把 log4j.properties 放到 WEB-INF/classes 中。没有 classes 创建一个。log4j.properties 如:

    1. log4j.addivity.org.apache=true  
    2. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
    3. log4j.appender.CONSOLE.Target=System.out  
    4. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
    5. log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c{2} - %m%n  
    6. log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender  
    7. log4j.appender.ROLLING_FILE.Append=false  
    8. log4j.appender.ROLLING_FILE.File=./logs/rolling.log  
    9. log4j.appender.ROLLING_FILE.MaxBackupIndex=2  
    10. log4j.appender.ROLLING_FILE.MaxFileSize=10MB  
    11. log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout  
    12. log4j.appender.ROLLING_FILE.layout.ConversionPattern=%d %-5p %c{2} - %m%n  
    13. log4j.logger.org.apache.solr=INFO,ROLLING_FILE  
    14. log4j.rootLogger=INFO,CONSOLE  
    log4j.addivity.org.apache=true log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c{2} - %m%n log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLING_FILE.Append=false log4j.appender.ROLLING_FILE.File=./logs/rolling.log log4j.appender.ROLLING_FILE.MaxBackupIndex=2 log4j.appender.ROLLING_FILE.MaxFileSize=10MB log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLING_FILE.layout.ConversionPattern=%d %-5p %c{2} - %m%n log4j.logger.org.apache.solr=INFO,ROLLING_FILE log4j.rootLogger=INFO,CONSOLE 

    把 下载的slf4j-log4j12-1.5.5.jar 和 log4j-1.2.16.jar 放到 WEB-INF/lib 里,把 slf4j-jdk14-1.5.5.jar 删除。

    重新用 zip 方式压缩成 solr.war 就行了,其实也可以不用 solr.war,直接目录就行。我在 jetty 中测试过。

    延伸:把 jetty 的确输出到文件中。

    jetty.home/etc/jetty.xml 中加:

    1. <New id="ServerLog" class="java.io.PrintStream">  
    2.   <Arg>  
    3.     <New class="org.mortbay.util.RolloverFileOutputStream">  
    4.       <Arg><SystemProperty name="jetty.home" default="."/>/logs/stderrout-yyyy_mm_dd.log</Arg>  
    5.       <Arg type="boolean">false</Arg>  
    6.       <Arg type="int">90</Arg>  
    7.       <Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT+8</Arg></Call></Arg>  
    8.       <Get id="ServerLogName" name="datedFilename"/>  
    9.     </New>  
    10.   </Arg>  
    11. </New>  
    12.   
    13. <Call class="org.mortbay.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>  
    14. <Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>  
    15. <Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call>  
        <New id="ServerLog" class="java.io.PrintStream">       <Arg>         <New class="org.mortbay.util.RolloverFileOutputStream">           <Arg><SystemProperty name="jetty.home" default="."/>/logs/stderrout-yyyy_mm_dd.log</Arg>           <Arg type="boolean">false</Arg>           <Arg type="int">90</Arg>           <Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT+8</Arg></Call></Arg>           <Get id="ServerLogName" name="datedFilename"/>         </New>       </Arg>     </New>      <Call class="org.mortbay.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>     <Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>     <Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call> 

    就可以把控制台的输出到文件。

  • 相关阅读:
    kingso_sort
    kingso_module
    KINGSO介绍
    kingso
    铁饭碗的含义不是在一个地方永远有饭吃,而是在任何地方都有饭
    立威廉_百度百科
    甜蜜间谍_百度百科
    贝克曼
    报喜鸟集团有限公司_百度百科
    浙江乔治白服饰股份有限公司
  • 原文地址:https://www.cnblogs.com/wycg1984/p/1812382.html
Copyright © 2011-2022 走看看