在idea中跑storm工程时,因为Storm中的日志级级别默认为INFO,控制台总是打印出很多没用的INFO级别的日志,导致我自己在代码中的sout内容看不清楚。

于是想着自定义日志的打印级别为WARN或ERROR。

网上查找了很多资料,有的说修改logback.xml, 有的说修改logback下的cluster.xml。但都没用。

后来终于找到了方法,在resources资源文件夹下,添加log4j2.xml (该文件是日志的配置文件,存在于storm-core-1.1.1.jar包中,用来进行日志的相关配置。)

如果手动添加了log4j2.xml,则程序会优先使用手动设置的resources下的这个log4j2.xml。

该文件的内容如下,只要拷贝该文件到resources目录下,然后修改其中的日志级别即可:

<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
--> <configuration monitorInterval="60">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%-4r [%t] %-5p %c{1.} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.apache.zookeeper" level="WARN"/>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</configuration>

未完。。。

下面说一下日志级别:

日志信息的优先级

org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别。

Level 描述
ALL 各级包括自定义级别
DEBUG 指定细粒度信息事件是最有用的应用程序调试
ERROR 错误事件可能仍然允许应用程序继续运行
FATAL 指定非常严重的错误事件,这可能导致应用程序中止
INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
OFF 这是最高等级,为了关闭日志记录
TRACE 指定细粒度比DEBUG更低的信息事件
WARN 指定具有潜在危害的情况

日志级别是如何工作的?

级别p的级别使用q,在记录日志请求时,如果p>=q启用。这条规则是log4j的核心。它假设级别是有序的。对于标准级别它们关系如下:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF。越往右,级别越高,错误越严重。

设置其中某个日志级别,则其左侧的日志类型都不会输出,相反,其右侧的日志类型都会输出。

比如设置ERROR,则all,debug,info,warn级别的日志都不会输出;error,fatal,off级别的日志都会输出。

trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。

debug: 调试。

info: 输出一下你感兴趣的或者重要的信息。

warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error 和warn(不算错误但是也请注意,比如以下depressed的方法)。

error: 错误信息。用的也比较多。

fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误。

还未完。。。

最后的最后,发现不用自定义日志级别,也能关闭打印INFO级别的日志。

原来我在main函数中设置了 config.setDebug(true);

只要在main函数中,设置,config.setDebug(false); 默认就是false。

最新文章

  1. 对Android开发者有益的40条优化建议
  2. HDU5892~HDU5901 2016网络赛沈阳
  3. Spring结合Quartz实现多任务定时调用(转载)
  4. openwrt 的依赖找不到问题
  5. iptables 详解
  6. 分析WordPress主题结构是如何架构的?
  7. c#基础语言编程-正则表达式应用
  8. [Swust OJ 234]--IrreducibleNumber(题意太坑)
  9. matlab三维画图
  10. AutoCAD 2012安装错误,与.net framework (1603错误)以及ms2005vc++的问题。
  11. webpack 打包js和css
  12. php生成器使用总结
  13. [BT5]信息收集1-2 Dnsmap
  14. 和团队齐头并进——敏捷软件开发的Scrum的学习
  15. String,StringBuffer,StringBuilder的区别
  16. Python中的数组和list
  17. POJ 1451 T9 (字典树好题)
  18. [.NET开发] C#连接MySQL的两个简单代码示例
  19. SQL Server-深入剖析统计信息
  20. css移除a标签及map、area(图片热区映射)点击过后的边框

热门文章

  1. Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析
  2. 嵌入式大赛PPT
  3. 【代码审计】VAuditDemo 文件包含漏洞
  4. GO第归
  5. c#活动目录操作
  6. EBCDIK,EBCDIC,ASCII,shift JIS間の変換
  7. Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/GenericObjectPoolConfig
  8. python 基础之字典一
  9. 吴裕雄--天生自然ORACLE数据库学习笔记:表分区与索引分区
  10. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 显示代码:电脑程序输出: Sample output