AMQ学习笔记 - 19. 问题解决 - 控制Atomikos的日志输出
概述
解决方案
- Atomikos使用slf4j输出日志
所以,项目里要提供slf4j-api的相关jar包。 - slf4j只是一个抽象层,你还需要绑定到一个实现上
在这里我们使用log4j,那么我们需要引入下面的jar:
[1] slf4j-log4j12:适配器的角色,提供slf4j-api到log4j的转换
[2] log4j:日志实现 - 你可以使用log4j.properties来配置log4j的输出
log4j.logger.com.atomikos=WARN
扩展内容
1.log4j
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.12:compile # 适配器,将面向slf4j api的日志输出切换到log4j的底层实现
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.12:compile # 提供抽象的api
[INFO] | \- log4j:log4j:jar:1.2.17:compile # 提供日志实现
我们不需要进行任何配置,会自动进行绑定:slf4j-api —> slf4j-log4j12 —> log4j。这样,我们面向抽象的slf4j编程,如果有切换日志实现的需要,也很方便。
2.slf4j-simple
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.12</version>
</dependency>
分析依赖关系:
[INFO] +- org.slf4j:slf4j-simple:jar:1.7.12:compile # 提供日志实现
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.12:compile # 提供抽象的api
这里没有适配器了,应该是因为slf4j-simple本就是面向slf4j-api的实现。
3.不要绑定多个实现
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/lijinlong/.m2/repository/org/slf4j/slf4j-log4j12/1.7.12/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/lijinlong/.m2/repository/org/slf4j/slf4j-simple/1.7.12/slf4j-simple-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
你可以选择某一个实现进行绑定,但尽量使用一种实现。
参考目录
- 为什么要使用SLF4J而不是Log4J
理解slf4j和log4j的关系。 - How to set Atomikos to not write to console logs
这里就如何控制Atomikos的日志输出问题进行了讨论。 - Unable to setup Slf4j-->Log4J logging in ATE-3.8.0
这里就如何控制Atomikos的日志输出问题进行了讨论。
AMQ学习笔记 - 19. 问题解决 - 控制Atomikos的日志输出的更多相关文章
- Java学习笔记 DbUtils数据库查询和log4j日志输出 使用
DbUtils使用 QueryRunner DbUtils中定义了一个数据库操作类QueryRunner,所有的数据库操作CRUD都是通过此类来完成. 此类是线程安全的 方法名 对应sql语句 exc ...
- Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...
- SQL反模式学习笔记19 使用*号,隐式的列
目标:减少输入 反模式:捷径会让你迷失方向 使用通配符和未命名的列能够达到减少输入的目的,但是这个习惯会带来一些危害. 1.破坏代码重构:增加一列后,使用隐式的Insert插入语句报错: 2.查询中使 ...
- golang学习笔记19 用Golang实现以太坊代币转账
golang学习笔记19 用Golang实现以太坊代币转账 在以太坊区块链中,我们称代币为Token,是以太坊区块链中每个人都可以任意发行的数字资产.并且它必须是遵循erc20标准的,至于erc20标 ...
- springmvc学习笔记(19)-RESTful支持
springmvc学习笔记(19)-RESTful支持 标签: springmvc springmvc学习笔记19-RESTful支持 概念 REST的样例 controller REST方法的前端控 ...
- [原创]java WEB学习笔记19:初识MVC 设计模式:查询,删除 练习(理解思想),小结 ,问题
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Cocos2d-x 学习笔记(19) Control Invocation
[Cocos2d-x 学习笔记 目录链接] 1. 简介 control为其子类提供了touch回调函数,当子类触发EventType相关事件时,会调用相关的回调函数. control对象接收到的事件类 ...
- AMQ学习笔记 - 15. 实践方案:基于ActiveMQ的统一日志服务
概述 以ActiveMQ + Log4j + Spring的技术组合,实现基于消息队列的统一日志服务. 参考:Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析 与参考文章的比较 ...
- Java学习笔记(十九)——Java 日志记录 AND log4j
[前面的话] 学习的进度应该稍微在快一点. Java日志到了必须学习怎么使用的时候了,因为在项目中要进行使用.基础性文章,选择性阅读. [结构] java日志对调试,记录运行,问题定位都起到了很重要的 ...
随机推荐
- ListView的自动循环滚动显示
最近项目里需要做评价内容的循环滚动显示,一开始想到的就是定时器.后来查了资料才知道ListView里面有个函数smoothScrollToPosition(position),瞬间觉得简单了很多.首先 ...
- 日志记录到txt文件
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;usi ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- qt creator中使用qwt插件
前提:我用mingw编译的qwt. 将qwt插件集成到qt designer非常easy.仅仅要把qwt编译的qwt_designer_plugin.dll复制到C:\Qt\Qt5.3.1\5.3\m ...
- Oracle—用户管理的完全恢复(四)
在用户管理的备份(三)中,最后打开数据库时,用了alter database open resetlogs;的命令,这里为什么用resetlogs命令? 一.resetlogs的作用 1.将当前的日志 ...
- Linux scp 使用详解
一般情况,本地网络跟远程网络进行数据交抱,或者数据迁移,常用的有三种方法,一是ftp,二是wget /fetch 三是,rsync 大型数据迁移用rysync,其次用fetch/wget ,最次是ft ...
- linux的Ubuntu
一:修改ssh默认端口号 vi /etc/ssh/sshd_config [注意是sshd_config 而且是这个目录下,同时一定要用sudo才能修改,否则不能写入.所以sudo vi /etc/s ...
- 关于消除MySQL输入错误后的警报声
找到mysql安装目录中的 my.ini 配置文件,在[mysql]行的下面加入一行 no-beep 即可消除声音. [mysql] no-beep default-character-set=gb2 ...
- c++ 设计模式1
从面向对象谈起 1) 底层思维:向下,如何把握及其底层,从微观理解对象构造 (语言构造.编译转换.内存模型.运行时机制) 抽象思维: 向上,如何将我们的周围世界抽象为程序代码 (面向对象.组件封装 ...
- C++与正态分布
正态分布(Normal distribution)又名高斯分布(Gaussiandistribution).若随机变量X服从一个数学期望为μ.方差为σ^2的高斯分布,记为N(μ,σ^2).其概率密度函 ...