idea中的Storm1.1.1工程自定义日志级别-程序员宅基地

技术标签: 开发工具  大数据  

在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。 

 

转载于:https://www.cnblogs.com/mediocreWorld/p/11241276.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dengmanzhou3124/article/details/101891197

智能推荐

施密特正交化_使用 numpy 来实现 gram-schmidt 过程-程序员宅基地

Python3sympy.matricesimport numpy as npfrom sympy.matrices import Matrix,GramSchmidt A = np.array([[1,0,0],[0,2,1],[0,1,3]])# 将numpy 矩阵转为sympy的列向量集合MA = [Matrix(col) for col in A.T]# 施密特正交化gr..._使用 numpy 来实现 gram-schmidt 过程

获取对象不能直接取的键值-程序员宅基地

有些对象比如dom节点,会出现键值得key值为"0"的情况,此时不能直接用obj.0来获取。只能通过其他方法1、适合数字 0、 1、 2这种键Object.keys($("#nav-tabs")).map(function(key) { console.log( $("#nav-tabs")[key] ) })2、 适合 xx-xx 这种键var keys=Object.keys(obj)const( key of keys){console.log(obj.k..

广告拦截应用将从Google应用商城中移除-程序员宅基地

为什么80%的码农都做不了架构师?>>> ...

将图片嵌入程序文件的测试-程序员宅基地

继前面的文章,本文是一个测试例子,并给出测试结果。将图片转换成目标文件命令与x86平台相类似,只需修改几个参数即可。命令如下:$ arm-linux-objcopy -I binary -O elf32-littlearm -B arm logo.jpg logo.o需要注意的是输出文件的格式,即-O选项的内容,这里是elf32-littlearm,原来是写elf32-li

多层嵌套Fragment获取父Activity(Fragment)控件及方法_fragment获取父fragment-程序员宅基地

在fragment中加入以下代码: @Override public void onAttach(Activity activity) { super.onAttach(activity); if (activity instanceof FatherActivity) { FatherActivity fatherActivity..._fragment获取父fragment

Qt类Qhttp_qhttpresponseheader qt5-程序员宅基地

QHttp是对HTTP协议的封装。该类提供了直观的接口,让你可以使用HTTP协议下载或者上传数据。但是在你的程序中,我们推荐使用QNetworkAccessManager 和 QNetworkReply类,因为这两个类更简洁,也更强大,更加贴近协议。QHttp类异步执行,所以函数都是非阻塞的。如果调用的操作函数没有执行,它也立即返回,操作会被调度,过一会就会执行。当执行完之_qhttpresponseheader qt5

随便推点

SpringBoot整合shiro_筱 语的博客-程序员宅基地

依赖导入 <!--shiro--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency>

达梦6.0试用之导入导出-程序员宅基地

前几天ITPUB的熊建国主编和我联系,希望我能参加国产数据库达梦的适用活动,并写几篇使用感受。本来最近手工的事情比较多,本打算推辞的,不过熊主编再三邀请,而且强调并非是枪手文,只要写出真实使用感受即可。既然如此,我就本着支持国产...

Rancher2.6.3单机搭建_rancher单机部署-程序员宅基地

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、前期准备1.安装Docker所需要的依赖二、操作步骤1.配置阿里云镜像仓库(建议配置)2.安装Rancher2.安装Rancher总结前言基于Centos7搭建单机版Rancher2.6.3一、前期准备1.安装Docker所需要的依赖#安装所需资源包sudo yum install -y yum-utilssudo yum-config-manager \ --add-repo \ http._rancher单机部署

列表(无序列表,有序列表,定义列表)_有序列表可以有circle吗-程序员宅基地

列表(无序列表,有序列表,定义列表)_有序列表可以有circle吗

使用TensorFlow2作图像分类_tensorflow2 图像分类-程序员宅基地

基本的机器学习工作流程:检查并了解数据建立输入管道建立模型训练模型测试模型改进模型并重复该过程import pathlibimport matplotlib.pyplot as pltimport numpy as npimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layersfrom tensorflow.keras.models import Sequenti_tensorflow2 图像分类

Kafka 集群部署与测试_kafka集群安装与测试-程序员宅基地

(1) 创建Topic (2 partitions & 2 replication-factor),并查看详细情况。(2) 创建Topic (3 partitions & 2 replication-factor),并查看详细情况。2. 分别在三个节点上启动Kafka服务(启动三个broker)注意:如果当前主题正在使用,则无法删除。_kafka集群安装与测试