Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Solr:如何关闭日志记录_Java_Logging_Solr_Slf4j - Fatal编程技术网

Java Solr:如何关闭日志记录

Java Solr:如何关闭日志记录,java,logging,solr,slf4j,Java,Logging,Solr,Slf4j,好吧,我对Solr感到非常兴奋,但我似乎不知道如何降低日志记录级别,以便在执行大量导入运行时,它能够以可接受的速度运行 我甚至不确定它使用的是哪种日志框架(因为,你知道,java.util.logging、log4j和commons logging还不够,我们需要将slf4j添加到混合中!)好吧,很抱歉,不得不让这个小小的咆哮溜走了。:-) 因此,我将src/main/resources/log4j.properties配置为: log4j.rootLogger=WARN, console lo

好吧,我对Solr感到非常兴奋,但我似乎不知道如何降低日志记录级别,以便在执行大量导入运行时,它能够以可接受的速度运行

我甚至不确定它使用的是哪种日志框架(因为,你知道,java.util.logginglog4jcommons logging还不够,我们需要将slf4j添加到混合中!)好吧,很抱歉,不得不让这个小小的咆哮溜走了。:-)

因此,我将
src/main/resources/log4j.properties
配置为:

log4j.rootLogger=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n
org.apache.solr.core=WARN
org.apache.solr.update.processor=WARN
.level = WARNING

com.gwtstore.level=ALL
com.appgravity.level=ALL
org.apache.solr.core.level=WARNING
org.apache.solr.update.processor.level=WARNING
然后为了更好地衡量,我将
src/main/resources/logging.properties
配置为:

log4j.rootLogger=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n
org.apache.solr.core=WARN
org.apache.solr.update.processor=WARN
.level = WARNING

com.gwtstore.level=ALL
com.appgravity.level=ALL
org.apache.solr.core.level=WARNING
org.apache.solr.update.processor.level=WARNING
但不知何故,我仍然看到了大量的以下内容:

INFO: {add=[-7757828706308755634]} 0 0
Feb 21, 2011 6:12:23 PM org.apache.solr.core.SolrCore execute
INFO: [] webapp=null path=/update params={} status=0 QTime=0 
这是我的课程路径:

src/test/resources
src/test/java
src/main/resources
src/main/java
idea_rt.jar
junit-rt.jar
deploy.jar
dt.jar
javaws.jar
jce.jar
jconsole.jar
management-agent.jar
plugin.jar
sa-jdi.jar
alt-rt.jar
charsets.jar
classes.jar
jsse.jar
ui.jar
apple_provider.jar
dnsns.jar
localedata.jar
sunjce_provider.jar
sunpkcs11.jar
test-classes
classes
junit-4.8.2.jar
gwt-user-2.1.1.jar
gwt-servlet-2.1.1.jar
servlet-api-2.5.jar
weld-servlet-1.1.0.Final.jar
hibernate-core-3.6.0.Final.jar
antlr-2.7.6.jar
commons-collections-3.2.1.jar
dom4j-1.6.1.jar
hibernate-commons-annotations-3.2.0.Final.jar
slf4j-api-1.6.0.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
jta-1.1.jar
hibernate-entitymanager-3.6.0.Final.jar
javassist-3.12.0.GA.jar
hibernate-c3p0-3.3.1.GA.jar
c3p0-0.9.1.jar
hibernate-validator-4.1.0.Final.jar
validation-api-1.0.0.GA.jar
cglib-nodep-2.2.jar
javax.inject-1.jar
cdi-api-1.0.jar
jboss-interceptor-api-1.1.jar
jsr250-api-1.0.jar
lucene-core-2.9.1.jar
lucene-snowball-2.9.1.jar
mongo-java-driver-2.4.jar
mysql-connector-java-5.1.6.jar
protobuf-java-2.2.0.jar
proxytoys-1.0.jar
quartz-1.8.4.jar
commons-lang-2.5.jar
commons-httpclient-3.1.jar
commons-logging-1.0.4.jar
commons-codec-1.2.jar
nekohtml-1.9.7.jar
xercesImpl-2.8.1.jar
xml-apis-1.3.03.jar
gwtquickstarter.jar
solr-solrj-1.4.1.jar
commons-io-1.4.jar
commons-fileupload-1.2.1.jar
wstx-asl-3.2.7.jar
stax-api-1.0.1.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
solr-core-1.4.1.jar
lucene-analyzers-2.9.3.jar
lucene-highlighter-2.9.3.jar
lucene-memory-2.9.3.jar
lucene-queries-2.9.3.jar
lucene-misc-2.9.3.jar
lucene-spellchecker-2.9.3.jar
solr-commons-csv-1.4.1.jar
wstx-asl-3.2.7.jar
morphia-0.98s10.jar
androidmarketapi-0.5.jar
openid4java-0.9.5.jar
  • 您需要确保日志属性文件已部署到
    ../yourWebapp/WEB-INF/classes/log4j.properties

  • 如果存在
    ../yourWebapp/WEB-INF/classes/log4j.xml
    文件,则会覆盖属性文件

  • Log4j配置文件的位置也可以由系统属性覆盖


  • 有关Log4j如何获得其配置的更多信息,请参阅Log4j简介。

    为Log4j For SOLR完成此操作后,我可以告诉您这很痛苦。Log4j不能很好地与SOLR一起工作。不管怎样,下面是我如何使SOLR与slf4j和log4j一起工作的。如果有一个更简单的方法-太棒了-去做吧

    在solr/lib中

    • 添加slf4j-log4j12-1.5.11.jar(制造 确保版本与slf4j api匹配-??? )
    • 删除slf4j-jdk14-1.5.5.jar(重要-否则无法使用log4j)
    在webapp的参考资料中添加log4j.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration SYSTEM "/WEB-INF/log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" >
      <appender class="org.apache.log4j.DailyRollingFileAppender" name="FILE" >
        <param name="file" value="logs/jetty.log" />
        <param name="datePattern" value="'.'yyyy-MM" />
        <param name="append" value="true" />
        <layout class="org.apache.log4j.PatternLayout" >
          <param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n" />
        </layout>
      </appender>
      <root>
        <priority value="error"></priority>
        <appender-ref ref="FILE" />
      </root>
    </log4j:configuration>
    

    如果您只是想从Solr服务器完全关闭日志记录,只需访问并导航到顶部列表中的日志记录选项即可

    在该页面上,您可以找到为Solr安装定义的各种日志记录级别的详细表。更改其父记录器以使其使用您在应用程序中使用的记录器,或者完全关闭它们

    希望这就是你想要的。
    感谢

    以下链接讨论了如何正确配置Solr日志记录

    如果您想临时更改日志记录,那么可以从Solr admin页面进行更改。为了永久地进行更改,您需要将JDK日志属性文件添加到SolrWeb应用程序中

    对于tomcat,以下是步骤

  • 在WB_INF文件夹中为solr web应用程序创建classes目录 i、 e.%TOMCAT_安装目录%/webapps/solr/WEB-INF/classes/logging.properties\u
  • 创建logging.properties文件
  • 添加以下用于设置日志级别的条目(对于一个类或整个包,可以将日志级别从最高级设置为最高级)
  • org.apache.commons.digester.digester.level=FINEST

    org.apache.solr.level=警告


    在将单词
    WARNING
    放入无限多的文件中进行了长时间的尝试之后,看起来我终于设法降低了Tomcat Solr日志记录的速度。我完全不知道这对您的情况/环境有什么帮助,因为我的脑子里现在满是JAVA配置。不管怎样,我还是把它写下来,希望将来能避免一些人的痛苦

    在调试过程中,我可能已经完全禁用了一些日志记录,因此您可能需要在调试时(例如,在开发服务器上)撤销我在这里描述的内容

  • 在配置文件夹中创建一个名为
    logging.properties
    的文件,例如在
    /etc/tomcat…
    中(如果该文件尚不存在)

  • 如果
    logging.properties
    已经存在,请将所有内容注释掉。不过,您可以选择不注释掉其他行,以防需要一些日志记录

  • 将以下内容追加/插入到
    日志记录.properties

    .level = WARNING
    
  • $CATALINA_HOME/bin
    文件夹中创建一个名为
    setenv.sh
    的文件(如果该文件尚不存在)。(哪里是
    $CATALINA_HOME
    ?通常在
    /usr/share/tomcat…
    中,但键入
    ps-ef | grep tomcat

    并在输出中查找字符串catalina.home或类似的内容以确保。)

  • 将以下内容追加/插入到
    setenv.sh

    export JAVA_OPTS="${JAVA_OPTS} -Djava.util.logging.config.file=/etc/tomcat.../logging.properties"
    
  • 重新启动Tomcat(例如,
    /etc/init.d/Tomcat…重新启动
    ,取决于您的操作系统)


  • (用实际版本的tomcat替换
    tomcat…

    除了在最新版本的Solr中编写的内容之外,您还可以选择配置慢速查询日志记录。设置阈值,超过该阈值,查询将被视为长期运行,并且此类查询将写入单独的日志中

    为此,将
    slowQueryThresholdMillis
    添加到
    solrconfig.xml
    文件中。例如,考虑每一个运行在2秒以上的查询,你会把下面的代码放进<代码> SoRCONFIG.XML >:

    <slowQueryThresholdMillis>1000</slowQueryThresholdMillis>
    
    1000
    
    我喜欢你的简短咆哮,在网上阅读了几个小时后,我也有同样的感觉,还有其他API,可能是相关的,但事实并非如此。You’你的咆哮:这真是Sun的错,1)花了太多时间才想出一个“标准”解决方案,2)产生了一个“标准”在许多方面技术上低于现有备选方案的解决方案,以及3)放弃问题。感谢您发布答案,它似乎证实了我从其他阅读中猜测的内容。所以SLF4J只是一个接口,所以你不能用开关直接控制它的输出。相反,您需要配置底层记录器,但需要确定哪个记录器是。对于Solr(也许还有Jetty)来说,它看起来像是Java在7月份构建的,所以这是一个默认配置,或者将其替换为