关于日志的认知

【Logback技术专题】「入门到精通系列教程」深入探索Logback日志框架的原理分析和开发实战技术指南(上篇) 在logback中,可以使用logger元素来定义一个日志输出器。name:指定该logger的名称。level:指定该logger的日志级别。additivity:指示是否遵循缺省机制。true:代表遵循缺省机制,即该logger和它的祖先logger都会被输出日志。false:代表该logger不遵循缺省机制,只有该logger会输出日志,而其祖先logger不会输出。在logback中,还有一个特殊的logger,叫做Root Logger,它是所有logger的祖先logger。 阅读详情

一、日志的介绍

   日志是作为程序员做开发少不了的,我们通常通过日志来。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。目前我们最常用的框架主要是log4j、slf4j、logback、logging。

二、log4j、slf4j、logback三者的区别

    其实slf4j是一系列的日志接口,而log4j和logback是具体实现了日志的框架。因为是接口,所以在项目中如果你不引用log4j、logback或者其他一些日志框架时,控制台的输出是这样的。   
   从运行的结果可以看出,由于没有给出准确的logger事务实现,无法在控制台输出日志,也就是说我们在开发中需要绑定一个日志框架
才能够正常的使用slf4j。
   log4j和logback时两个非常受欢迎的日志框架,但是两者又是不同的:
      log4j是apache实现的一个开源的日志组件
      logback同样是log4j的作者完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现 
   从源码我们可以看到logback是直接实现了slf4j的接口,而log4j不是slf4j的原生实现,所以slf4j api在调用log4j时需要一个适配层
 logback实现slf4j是不消耗内存和计算开销的。

  小总结:

   1、slf4j是java的一个日志门面,实现了日志框架一些通用的api,log4j和logback是具体的日志框架
   2、他们可以单独的使用,也可以绑定slf4j一起使用
    单独使用时,分别调用 框架自己的方法来输出日志信息
    绑定slf4j一起使用时,调用slf4j的api来输入日志信息,具体实现和底层的日志框架无关(需要底层框架的配置文件)
   3、很显然,我们不推荐单独使用日志框架,假设项目中已经使用了log4j,而我们此时加载了一个类库,而这个类库依赖于另外一个
日志框架,这个时候我们就需要维护两个日志框架,这是一个很麻烦的事情,而使用了slf4j就不同了,由于应用调用的是抽象的api,与底层日志框架无关,因此可以任意更换日志框架

三、log4j和slf4j和结合使用

 1、需要引入的jar包

    当log4j和slf4j结合使用时,需要引入三个jar,log4j.jar、slf4j-log4j.jar、slf4j-api.jar,简单来说就是,slf4j.jar的主要是作为一个门面,简化记录日志的操作,log4j.jar是记录日志的具体实现,而slf4j-log4j.jar是作为一个工厂,slf4j使用工厂
来生产log4j的日志记录器。

2、需要一个日志文件log4j.properties

log4j.rootLogger=ERROR,stdout
log4j.logger.com.endeca=INFO
# Logger for crawl metrics
log4j.logger.com.endeca.itl.web.metrics=INFO

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n

3、注意

     一定要谨记系统是默认加载src下面的日志配置文件的,所以,最好再项目下面建立一个SourceFolder,将配置文件放到其中。

四、commons-logging和slf4j

   commons-logging和slf4j都是日志的接口,供用户使用,而没有提供实现!
  log4j,logback等等才是日志的真正实现。
  当我们调用接口时,接口的工厂会自动寻找恰当的实现,返回一个实现的实例给我服务。这些过程都是透明化的,用户不需要进行任何操作!
  这里有个小故事,当年Apache说服log4j以及其他的日志来按照commons-logging的标准编写,但是由于commons-logging的类加载有点问题,实现起来也不友好,因此log4j的作者就创作了slf4j,也因此而与commons-logging两分天下。至于到底使用哪个,由用户来决定吧。
  这样,slf4j出现了,它通过简单的实现就能找到符合自己接口的实现类,如果不是满足自己标准的日志,可以通过一些中间实现比如上面的slf4j-log4j12.jar来进行适配。



五、总结

    个人推荐使用slf4j和log4j的使用,所以就这个而言,该文章就多介绍了两句,希望各位能够给出更多的意见,如若有不合适的地方定会认真修改的。

反思日志写作指南:从认知升级到实践应用 反思日志作为一种元认知工具,在教育领域具有重要价值。其核心原理是通过结构化记录(描述性、分析性、转化性)构建认知闭环,实现从经验到智慧的转化。技术层面,现代反思工具已发展出多媒体矩阵和协同平台等创新形式,如结合Notion/Obsidian构建个人知识库,或使用语音日记、思维导图等多模态记录方式。在教育实践中,反思日志特别适用于服务学习、临床实践等场景,能有效促进认知升级和情感整合。掌握双栏记录法、五问法等技巧,可以帮助突破反思深度不足等常见问题,将日常经历转化为深层学习。 阅读详情

相关推荐

反思日志:结构化思考与认知复利的实践指南

反思日志是一种通过结构化框架将日常经验转化为认知资产的有效工具。其核心原理在于运用元认知技术,采用事件-分析-转化三阶模型进行系统思考,实现从经历到经验的质变。在知识管理领域,这种方法能显著提升决策质量并形成认知复利效应。现代数字化工具链(如Notion、Obsidian等)的引入,使得日志的记录与分析更加高效。实践表明,反思日志特别适用于项目复盘、个人成长和团队管理等场景,通过模式识别和量化评估,帮助从业者规避认知偏差,建立持续优化的思维框架。

weixin_31742871的博客 223

Java 日志系列(一):详解主流日志框架Log4j、Log4j 2、JUL、Commons Logging和Slf4j&Logback

优雅的日志系统可以记录操作轨迹,监控系统运行状况以及回溯系统故障。在工作中,部分工程师对主流的日志框架仍然是一知半解,日常应用还停留在复制粘贴的层面,因此写作本文,希望对读者有所帮助。笔者将通过 3 篇文章全面系统地介绍 Java 日志框架,主要内容如下:日志的意义与价值;Java 日志框架进化史;日志门面与日志系统;日志框架的使用选择;日志使用中需要遵循的规范及注意事项;日志使用示例及常见报错。

Jin_Kwok的博客 3319

技术研究日志:工程师的可信认知校准方法

技术研究不是知识搬运,而是面对快速迭代技术时的认知校准过程——它始于真实业务问题触发,依赖可复现实验验证假设,强调信息源可信度衰减与环境指纹记录,并最终收敛为可交付、可协作的技术决策。在文档滞后、社区观点冲突、KPI倒逼上线的现实压力下,一份结构化的技术研究日志,成为工程师对抗‘知识幻觉’和‘范围蠕变’的核心生存工具;它不替代深度学习,却让每一次技术判断都锚定在真实数据与可追溯痕迹之上,支撑从新人选型到资深架构演进的全周期工程实践。

weixin_40192258的博客 510

常见日志框架分析

1 简要介绍 Java领域有各种各样的日志输出框架,你是不是在所参与过的项目中看到别人用各种方式配置了自己的日志输出规则,但是却不知道每一种日志框架各自有什么特点,相互之间有什么关系?本文就简要介绍一下目前Java开发领域里最常用的几种日志框架应该如何使用,以及简单的一些工作原理。 1.1...

1814

编程日志:构建抗遗忘、可追溯的个人技术认知基座

编程日志是一种面向工程师的认知管理实践,其本质是将碎片化调试经验、性能观测数据和架构决策过程,结构化沉淀为可验证、可检索、可演化的知识资产。它基于Git版本控制实现认知迭代的原子性,依托YAML元数据与标签体系支撑精准检索,通过Context-Observation-Conclusion三元结构保障技术结论的可复现性。相比传统博客或笔记工具,编程日志强调‘低维护、高生长性’,天然适配现代开发中API频繁变更、文档滞后、问题边界模糊等现实挑战。典型应用场景包括分布式事务复盘、JVM调优记录、Kafka消费者组

didi9310的博客 478

程序员的编程日志(Programming Log):一种认知资产管理实践

编程日志(Programming Log)是一种面向开发者个人认知沉淀的技术记录范式,其核心原理是将隐性经验结构化为可检索、可复用、可追溯的知识资产。不同于传统技术博客的知识传播导向,它强调以‘未来自己’为唯一用户,通过原子日志、概念沉淀、代码片段与决策图谱四层结构,对抗遗忘曲线并支撑技术判断。其技术价值在于将调试过程、架构权衡、线上故障等真实场景中的碎片洞察,转化为可持续复利的认知资本。典型应用场景包括:高频问题快速回溯、团队级经验复用、故障复盘标准化、技术选型历史校准。本文聚焦于programming

aobai7842的博客 340

Java常见日志框架介绍及分析、Spring日志分析,Spring4和Spring5在日志的区别

目录 一.Java常用的日志框架介绍 二.Java常用日志框架分析 2.1 JUL使用 2.2Log4j使用 1.添加依赖 2.在classpath下面添加配置文件:log4j.properties 3.使用Log4j记录日志 2.3JCL使用分析 2.4SLF4J(酸辣粉4斤) 介绍(引用官网) SLF4J绑定器 Spring4和Spring5的日志区别 Spring4...

qq_34644183的博客 2577

程序员思维日志:用 Git + Markdown 构建可搜索的编程认知仓库

编程日志(Developer Journal)是一种面向工程师自我复盘与认知沉淀的技术实践,其核心在于记录真实、带上下文、有时序标记的思维过程,而非标准化文档或知识笔记。它依托轻量级技术栈(如 Git 版本控制、Markdown 文件系统、ripgrep 全文检索),实现‘搜索优先于浏览’的设计哲学,解决传统笔记工具在代码调试、技术债溯源、团队经验传承等场景中的信息断层问题。相比 Obsidian 或 Notion 等通用笔记平台,programming.log 更强调原子性、可追溯性与工程原生集成,天然适

天下无双 370

日志收集分析器(ELK)

由于我的项目中使用的是Filebeat作为一个日志数据采集器,那有没有其他的更好的日志收集分析采集器呢?ELK与我之前的项目的异同之处。

m0_52165864的博客 1621

Unity日志调试效率革命:Console Pro重构日志认知链路

在Unity开发中,日志调试长期面临噪声干扰大、上下文缺失、因果难追溯等核心痛点。传统Console仅提供线性输出与基础过滤,而现代工程实践亟需支持语义搜索、调用链分组、变量实时追踪与跨模块关联分析的日志系统。Editor Console Pro通过智能搜索、动态拓扑过滤、因果链日志分组及内联变量预览四大能力,将日志从被动接收的信息流,升级为主动构建调试上下文的认知工具。它深度适配Unity编辑器工作流,兼容Script Debugging、IL2CPP符号、Addressables高频日志等真实项目场景,

weixin_32147929的博客 628

掌握冲动行为:认知行为疗法中的ABC日志

本篇博文探讨了如何通过认知行为疗法中的ABC日志来管理冲动行为。文章详细介绍了冲动信念的识别、评估和争议过程,以及如何利用证据来质疑这些信念,并通过实践认知干预策略来减少冲动行为的发生。...

weixin_36483050的博客 593

程序员思维日志:用Programming.log沉淀可复用的技术认知

编程日志(Programming.log)是一种面向工程师认知演化的轻量级知识管理范式,其核心在于以时间戳为索引、以问题驱动为线索、以可验证代码为证据,实现思考过程的低摩擦记录与高复用回溯。它区别于传统技术博客,不追求传播性,而专注解决‘为什么这样选’‘bug为何难定位’‘概念何时真正理解’三类不可替代的认知资产沉淀。通过纯文本+静态站点的技术栈,天然支持离线编辑、全文搜索与Git版本化演进,成为程序员对抗信息熵增、构建个人技术复利系统的底层基础设施。本文详解其设计哲学、内容结构与工程落地实践。

a6t2007的博客 367

XGBoost算法案例 - 红酒品质分类

数据集共包含 11 个特征,共计 3269 条数据. 我们通过训练模型来预测红酒的品质, 品质共有 6 个各类别,分别使用数字: 0、1、2、3、4、5 来表示。

YIAN爱学习的博客 450

Mysql 中二进制日志的初步认知

Mysql 中关于二进制日志的配置初步使用

跟着飞哥学编程(全栈联盟) 560

基于Python+OpenCV中文及符号检测

一、项目背景与意义在图像处理、文档识别、自动翻译等场景中,中文及符号的准确检测是一个重要且复杂的任务。传统的字符检测方法往往对英文等拉丁字母系的识别效果较好,但对中文及特殊符号的识别准确率较低。本项目旨在利用Python编程语言结合OpenCV库,开发一个能够高效、准确地检测图像中中文及符号的系统,为相关领域的研究和应用提供技术支撑。二、技术实现图像预处理:利用OpenCV的图像处理功能,对输入的图像进行灰度化、二值化、滤波去噪等预处理操作,以提高中文及符号检测的准确性[1]。

2301_79809972的博客 1121

医疗影像技术实战:如何用Python快速生成DRR图像(附完整代码)

本文详细介绍了如何使用Python实现数字重建放射影像的快速生成。通过实战代码,从基础光线投射算法到性能优化,逐步讲解DRR图像生成的核心原理与工程实践,帮助开发者掌握医疗影像处理的关键技术,赋能放射治疗规划与图像引导手术等临床工具开发。

k8l9m0n的博客 72

安全日志到ATT&CK洞察:利用大型语言模型实现高级威胁理解与认知特征推理

本文提出了一种利用大型语言模型(LLMs)分析Suricata入侵检测系统日志的新框架,通过将网络事件映射到MITRE ATT&CK技术来推断攻击者行为及其认知特征。研究采用两阶段方法:首先将日志分割为语义连贯的行为单元,再通过检索增强生成技术将其与ATT&CK战术关联。实验结果表明,该方法在网络可见阶段(如侦察、横向移动)具有高精确率,但在主机驻留行为(如持久化、命令控制)方面存在局限性。这项工作为认知自适应网络防御奠定了基础,未来可整合多源数据并深化认知建模,实现从"检测行为&

hao_wujing的专栏 1013

EL6751实战指南:从协议解析到工业现场部署

本文详细介绍了EL6751网关在工业通信协议转换中的应用,从CANopen协议解析到EtherCAT系统部署的实战指南。通过协议栈位置、数据封装方式和通信模型差异的深入分析,帮助工程师高效实现EtherCAT主站与CANopen从站设备间的无缝对接,提升工业现场通信效率。

weixin_30338481的博客 548

程序员思维日志:一种可追溯、可验证的编程认知存档方法

编程日志不是技术博客,而是面向开发者自身的认知存档系统,其核心在于将碎片化调试过程转化为结构化、可回溯的思考记录。它基于时间轴组织、强调问题驱动与证据链闭环,融合Git版本控制与Markdown轻量表达,实现知识沉淀的确定性与离线可用性。相比传统笔记或博客,它更关注‘如何让未来的我准确复现此刻的思考路径’,天然适配工程师高频迭代、强上下文依赖的工作场景。在DevOps实践、前端状态管理、TypeScript类型推导等典型工程问题中,这种以‘What happened → Why failed → How f

clugcpne10995的博客 350

交流伺服电机绝对式位置控制实战指南

伺服电机控制是工业自动化的核心技术之一,其核心原理是通过闭环反馈实现精确位置控制。绝对值编码器作为关键传感器,能提供单圈内的绝对位置信息,避免了增量式编码器的累计误差问题。在工程实践中,电子齿轮比配置、位置环PID调节等技术直接影响系统动态性能。本文以包装机械为典型场景,详细解析了从硬件选型到参数整定的全流程实现方案,特别是针对单圈绝对值编码器初始化和限位保护等易错环节,给出了经过验证的解决方案。通过合理设置17位编码器的电子齿轮比和优化运动控制算法,最终实现了±0.05°的高精度定位。

weixin_42531588的博客 281

VCS 2018 环境下,手把手教你用 UVMC 搞定 SystemC 和 SystemVerilog 混合仿真(附完整代码)

本文详细介绍了在VCS 2018环境下使用UVMC实现SystemC和SystemVerilog混合仿真的完整指南。从环境配置、工具链设置到UVMC通信机制解析,提供了实战案例和高级调试技巧,帮助开发者高效搭建复杂验证环境。特别适合需要处理跨语言仿真的芯片验证工程师。

weixin_30952535的博客 285

9.6 版本发布日志:用Changelog记录你的认知升级

一位工程师回顾自己开源项目的变更日志时,意识到这些记录不仅记录代码迭代,更承载了认知进化的轨迹。文章建议将个人投资体系像开源项目一样维护,采用标准化的变更日志(Changelog)格式,按年度记录配置调整(Added/Changed)、淘汰内容(Deprecated/Removed)和认知修正(Fixed)。重大里程碑(如资产量级跨越或被动收入覆盖支出)可标记为主版本升级。这种结构化记录能抵御记忆偏差,为未来的自己留存真实的决策轨迹,而非美化后的叙事。只需简单文档定期更新,即可构建个人财务体系的"版本历史"

oscar999的专栏 383

Mediapipe入门——搭建姿态检测模型并实时输出人体关节点3d坐标(2024.1.4更新)

Mediapipe入门,利用mediapipe搭建人体整体检测模型,并输出右手21个关节点的坐标;mp_holistic.Holistic函数理解,mp_holistic.Holistic.process函数理解;mp.solutions.drawing_utils.draw_landmarks函数理解;Mediapipe实时姿态估计,3d骨架铰接图,matplotlib和Mediapipe绘图

kalakalabala的博客 6万+

从日志然后反思-周岭认知觉醒

记录日程虽然没有让我成为像柳比歇夫那样厉害的人,但提高了我对时间的敏感度。因为我每记录一笔浪费掉的时间,比如因看手机荒废了2小时,心里就会有一种愧疚感,进而就会不自觉地希望自己减少这种浪费,毕竟记录这样的日志并不光彩,谁愿意自己的生命都是由这些无聊的事情组成的呢?当然我有时候也过得异常忙碌,常常忙得晕头转向,看着密密麻麻的日志,也不禁会想:“自己到底在忙什么?于是我问自己:如果一直被外界的安排牵着走,即便每天过得很“充实”,又有什么意义呢?

baomihua1157的博客 190

Linux系列:SecurtCRT中的密码如何找回

【代码】Linux系列:SecurtCRT中的密码如何找回。

NIO4444 1088

计算机控制技术及应用

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

上一篇: Idea创建Maven项目
下一篇: Linux-Ubuntu初学者
JavaWeb_Hao
博客等级 码龄9年 21粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值