日志系统2

目前流行的日志门面接口有common-logging、slf4j,以前一直都在使用前者,后来许多文章都在介绍slf4j,很多地方都在介绍slf4j的优点(最主要的比common-logging优越的地方是能在OSGi环境下使用,但是至于为什么common-logging不能使用还是不太清楚),因此决定开始尝试slf4j,对于jar包引入方面,感觉稍微没有common-logging方便,common-logging会自动从众多日志实现的jar包中自动选择,而slf4j需要放入“合适”的jar包才能使用,当然这根它的实现机制有关系,slf4j的实现机制要求她必须这么做。

 

对于日志门面接口的介绍网上有很多文章介绍,不多说废话了,直接记录点实惠的东西,供查用。

 

slf4j这是门面接口,没有实现,如同common-logging一样,需要搭配具体的实现才能使用;

貌似logback是slf4j的亲密搭配,从引入jar包的名称也能看出来;

 

下面介绍两种搭配方式:

 

1. slf4j+logback

 

引入包:slf4j-api.jar、logback-classic、logback-core.jar (注意这三个版本必须一致)

 

logback最简单的配置示例(不是必须的)logback.xml:

<configuration debug="true">
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- encoders are assigned by default the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
			</pattern>
		</encoder>
	</appender>
	<root level="debug">
		<appender-ref ref="STDOUT" />
	</root>
	<!-- 下面配置一些具体包的日志过滤级别 -->
	<logger name="org.apache.activemq" level="WARN"/>
</configuration>

 

2.slf4j+log4j

 

引入包:slf4j-api.jar、slf4j-log4j.jar、log4j.jar(注意三个版本必须一致)

 

log4j配置示例,log4j.properties:

#设置级别和目的地
log4j.rootLogger=debug,appender1

#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
#自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行符号
log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n

#输出到文件(这里默认为追加方式)
log4j.appender.appender2=org.apache.log4j.FileAppender
#设置文件输出路径
#【1】文本文件
log4j.appender.appender2.File=c:/log1.log
#设置文件输出样式
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n
 

无论哪种搭配方式,程序中使用的方法如下:

 

程序中先定义logger

private static Logger logger = LoggerFactory.getLogger(YourClass.class);//slf4j logging
 

程序中日志输出方法:

logger.debug("hello");
logger.info("hello{}",p);//p是变量
 

 

 

 

slf4j + log4j2 实现日志系统:报错 近日使用slf4j + log4j2 实现日志系统 报出以下错误 SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details. SLF4J: Class path contains SLF4J bindings targe 阅读详情

相关推荐

19、深入解析cgroup Version 2与日志系统

本文深入解析了cgroup Version 2和Linux日志系统的相关知识。内容涵盖cgroup Version 2的使用和配置,包括容器资源限制、cpuset的设置以及将RHEL 8系统转换为使用cgroup Version 2的方法。同时,详细对比了rsyslog和journald两种日志系统的优缺点,介绍了journald的功能、journalctl的使用方法,以及如何增强日志安全性并配置远程日志存储。文章还总结了cgroup Version 2与日志系统在实际应用中的挑战与前景。

milk8的博客 70

monolog日志库和Yii2的日志系统的区域到底是什么?

特点MonologYii2日志系统适用项目任何PHP项目仅Yii2项目配置复杂度中等(需要手动配置)低(框架自动配置)扩展性高(可自定义各种组件)中等(主要扩展Targets)性能好(轻量级)更好(批量处理日志)学习曲线需要了解Handler、Formatter等概念只需了解Targets概念简单来说如果你在玩"通用积木"(非Yii2项目),选Monolog。如果你在玩"乐高城堡套装"(Yii2项目),用Yii2日志系统更方便!

长风破浪会有时的博客 665

内存学习(3):DRAM的基础存储结构(存储层级、读写过程,刷新与暂存)

DRAM,全称为 Dynamic Random Access Memory ,中文名是“动态随机存取存储器”。所谓“动态”是和“静态”相对应的,芯片世界里还有一种 SRAM 静态随机存取存储器的存在。笼统地说,DRAM 的结构比 SRAM 更简单,面积占用更小,适合制作大容量的存储芯片;而 SRAM 结构复杂一些,一般使用六个晶体管,面积消耗大,但是读写速度快,而且因为 SRAM 只用到晶体管,所以在工艺上和逻辑芯片相兼容,我们可以在逻辑芯片上直接集成 SRAM。

呆呆象呆呆的博客 2万+

使用 Log4J2 日志系统

如果你还没有习惯使用Logback,虽然我认为它确实是一个比Log4j更好的选择,没有关系,让我来告诉你怎么做吧! 第一、修改下你的Maven配置,exclusive logging starter,add log4j2 starter。 第二、配置文件给你准备好了,你甚至无需了解每一个配置都是干什么用的,拿来改改就好! 第三、如果你想给你的配置文件来一个特殊的名字,如果你想临时设置一下某些package的日志输出级别,改改属性配置就好了。 拿走不谢!

ttyy1112的专栏 500

AI 自动生成商业计划书:AIGC 如何助力创业者?

在创业的早期阶段,商业计划书(Business Plan)是至关重要的。它不仅用于吸引投资者、明确发展路径,还能帮助团队对业务模式、市场定位和财务预测有清晰认知。然而,撰写一份高质量的商业计划书往往需要投入大量时间和精力。如今,AIGC(AI Generated Content,人工智能生成内容)技术正在改变这一现状。借助 AIGC,创业者可以更快速、高效地创建商业计划书,并通过 AI 进行优化和数据分析。

2401_82808034的博客 3780

使用gsplat进行3D高斯泼溅的方案

gsplat 不是一个软件,而是一个深度优化CUDA的开源Python库。它的作者是 Nerfstudio 团队,这个团队最出名的项目是 Nerfstudio,是对 NeRFs 方法支持最好的一套框架。据其所述,出于对新一代技术的好奇,他们构建了 gsplat 这个库。它支持 Windows/Linux 两个系统,使用前必须准备好 Nvidia 显卡。跑这个项目真是特别费劲,官方的文档支持不够完善,以至于遇到问题,开发者们都只能在issue区里抱团取暖。

兴趣使然的创作者 2104

log-Log4j2 + SLF4j打造项目日志系统

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨Coder技术栈来源丨匠心Java一:前言...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 232

软考中级信息系统监理师(第二版)-第21章基础设施工程监理

由于网络信息技术的飞速发展,变化日新月异,网络设计不但要保证目前网络传输容量的要求,也要考虑今后网络的发展,满足当前以及今后相当一段时间内的网络需求,便于向新技术的升级和衔接,同时又需要保护原有的投资。通用布缆系统工程中,承建单位的竣工文档主要包括以下内容:承建合同,招标文件,投标文件,设计方案,工程实施组织设计方案,工程施工报告,隐蔽工程记录,变更记录,自测报告,信息点分布图(表),园区、楼宇、水平配线表,楼层平面图及无线设备点位图,无线设备信息表,竣工图纸等。多排安装时,列间距不应小于1200mm。

2301_78583973的博客 1400

用Slf4j集成Log4j2构建项目日志系统的完美解决方案

一、背景   最近因为公司项目性能需要,我们考虑把以前基于的log4j的日志系统重构成基于Slf4j和log4j2的日志系统,因为,使用slf4j可以很好的保证我们的日志系统具有良好的兼容性,兼容当前常见几种日志系统,而使用log4j2而不是log4j是因为Log4j 1.x 在高并发情况下出现死锁导致cpu使用率异常飙升,而Log4j2.0基于LMAX Disruptor的异步日志在多线程环境下性能会远远优于Log4j 1.x和logback(官方数据是10倍以上)。   关于slf4j的原理以及优点

myli92的博客 854

YOLOv12改进策略【Neck】| 使用CARAFE轻量级通用上采样算子

CARAFE内容感知的特征重新组合。

Limiiiing的博客 664

使用verilog实现基于FPGA的TDC设计

verilog实现TDC 高精度时间数字转换器概述(TDC) 简介: TDC被用于测量时间间隔,应用在物理研究、飞行时间测量领域等。 本设计使用verilog实现并在xilinx和altera的FPGA上均可实现! 设计中使用到下述几个模块,包括FIFO,COUNT等,在xilinx下也使用到了一些原语等。下面有实现的代码和仿真截图等。 顶层模块设计如下: module top( input wire start, input wire stop, input wire clk, output wire T

QQ_778132974的博客 6253

SpringBoot - 日志系统 SLF4j + Log4j2

SpringBoot 接入日志系统 目录SpringBoot 接入日志系统概述组件依赖配置 概述 上一篇搭建了VS Code的SpringBoot环境。 现在开始搭建SpringBoot日志系统。 SpringBoot常用的日志组件: 一、抽象层:SLF4j (对所有日志实现层的规范封装,这样可以无缝切换各种实现层) 二、实现层:Log4j,Logback,Log4j2 Log4j:已弃用,2015年已停止更新。 Logback:SpringBoot默认使用。 Log4j2:Log4j升级,集成了Logba

Rain's Blog 583

Python爬虫博客:如何抓取时事新闻信息 —— 从各大新闻网站获取实时新闻数据

发送请求:向目标新闻网站发送 HTTP 请求,获取网页内容。解析网页:使用解析库(如)从网页中提取新闻标题、摘要、内容、发布时间等。绕过反爬虫机制:使用代理、设置请求头、模拟浏览器行为等策略绕过反爬虫技术。数据存储与清洗:将抓取的数据保存到本地文件或数据库中,并进行清洗,确保数据的可用性。在抓取过程中,我们还会面对很多实际问题,比如反爬虫技术、分页抓取、动态加载的内容等。接下来,我们将逐步介绍如何使用不同技术抓取静态和动态网页,并对抓取的内容进行处理。Scrapy。

2201_76125261的博客 2135

NoneBot2 日志系统详解:从基础使用到高级定制

在机器人开发过程中,日志系统是开发者最重要的调试工具之一。NoneBot2 基于强大的 Loguru 库构建了一套完善的日志系统,本文将全面介绍如何在 NoneBot2 项目中高效地使用日志功能。 ## 基础日志记录 NoneBot2 提供了开箱即用的日志功能,开发者可以直接导入并使用预配置的 logger 对象: ```python from nonebot import logger ...

gitblog_00065的博客 420

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

NoneBot2 日志系统详解:从基础使用到高级配置

在机器人开发过程中,日志系统是开发者最得力的助手之一。NoneBot2 基于 Loguru 库构建了一套强大而灵活的日志系统,本文将全面介绍如何在 NoneBot2 项目中高效使用日志功能。 ## 日志基础使用 ### 日志级别介绍 NoneBot2 提供了7种标准日志级别,按严重程度从低到高排列: 1. TRACE - 最详细的跟踪信息 2. DEBUG - 调试信息 3. INFO -...

gitblog_01066的博客 426

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 4.2日志系统驱动程序…

本文是自学所写,是在老罗的Android之旅的基础上写的,站在高人的肩膀上耍耍,主要是对比一下4.0与4.2的区别并总结一下。 Logger驱动程序主要由两个文件构成,分别是: kernel\drivers\staging\android\logger.h kernel\drivers\staging\android\logger.c 接下来,我们将分别介绍Logger驱动程序的相关数据结构,

飞鸽传说的博客 486

使用Slf4j集成Log4j2构建项目日志系统的完美解决方案

一、背景   使用slf4j可以很好的保证我们的日志系统具有良好的兼容性,兼容当前常见几种日志系统,而使用log4j2而不是log4j是因为Log4j 1.x 在高并发情况下出现死锁导致cpu使用率异常飙升,而Log4j2.0基于LMAX Disruptor的异步日志在多线程环境下性能会远远优于Log4j 1.x和logback(官方数据是10倍以上)   关于slf4j的原理以及优点,请参见...

weixin_30908941的博客 182

5分钟搭建日志系统:log4j2快速原型开发

在实际开发中,日志系统是项目不可或缺的一部分,尤其是在快速原型阶段,能够快速集成日志功能可以极大提升开发效率。最近我在尝试使用log4j2为新产品原型添加日志功能时,发现了一个非常便捷的方法,今天就和大家分享一下我的经验。log4j2是Apache旗下的一个高性能日志框架,相比传统的log4j,它在性能和功能上都有显著提升。希望我的分享能帮助你在开发中节省时间,专注于核心功能的实现。切换模式非常简单,只需在配置文件中修改相应的参数即可,无需深入了解log4j2的复杂细节。

BlackironLynx23的博客 526

SpringBoot源码简读——4.2 补充-LoggingApplicationListener以及日志系统

日志的加载 LoggingApplicationListener 监听器 ps.这篇是我最早写的,所以当时还是习惯把ApplicationContext说成容器 支持的事件类型 supportsEventType public boolean supportsEventType(ResolvableType resolvableType) { // 判断事件类型是否支持,所支持的事件...

大风的博客 3147

java oa日志系统_plumelog 发布 3.1.2 版本,好用的 Java 分布式日志系统

来源:https://www.oschina.net/news/117940/plumelog-3-1-2-releasedPlumelog介绍plumelog专业致力于java日志系统,个人项目非公司项目,永久免费开源,gitee(码云)GVP项目(最有价值开源项目)优点:1.接入方便,基于java log4j,logback 原项目不用做任何改动2.采用日志异步上报方式,不占用本地项目磁盘空间...

weixin_30599809的博客 294

0x05 Spring Boot 2.x之日志系统详解

Spring Boot使用Commons Logging进行所有内部日志记录,但保留底层日志实现,默认提供了 Java Util Logging, Log4J2, and Logback的日志实现可供选择。

极客星云-优快云博客 1059

企业级日志系统:基于log4j2的最佳实践

我们还实现了自定义的日志事件处理器,确保这些敏感信息不会出现在任何日志文件中。当日志文件达到指定大小(如100MB)或者到第二天零点时,就会自动创建新的日志文件,并将旧文件归档。性能是日志系统的重要考量。我们使用了log4j2的异步日志功能,通过单独的线程来处理日志写入操作,避免了日志记录阻塞主线程。测试数据显示,使用异步日志后,系统吞吐量提升了约30%,特别是在高并发场景下效果更为明显。它不仅提供了便捷的代码编辑和预览功能,还能一键部署完整的演示环境,让团队成员可以快速体验和测试日志系统的实际效果。

OnyxPanther23的博客 790
上一篇: NIO 编程示例代码
下一篇: 为 Web 应用建立基于 JMX 的管理系统
maimode
博客等级 码龄19年 11粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值