自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sweetyi的专栏

不积跬步,无以至千里

  • 博客(56)
  • 资源 (3)
  • 收藏
  • 关注

原创 Log4J2源码系列(十一) - 从2.6版本影响到现在的bug, 使用JMX监控的可以看看

Log4J2从2.6版本至今未解决的bug,配置热更新通知事件属性不正确的bug

2020-04-23 22:11:01 1044

原创 Log4J2源码系列(十) - 内部日志StatusLogger的实现原理

从源码角度分析Log4J2的内部日志Status的作用以及实现原理

2020-03-29 11:12:12 1843

原创 Log4J2源码系列(九) - 没有配置文件也能打印日志? 默认配置怎么创建的?

自定义配置文件解析失败,为什么应用程序还是能打印日志呢?从源码的角度来分析默认配置创建的时机,作用 以及默认配置的关键配置项

2020-03-28 07:17:35 1069

原创 Log4J2源码系列(八) -NullConfuguration是什么?用来做什么的呢?

分析Log4J2中的NullConfiguration的创建时机、作用,以及内部的构造

2020-03-27 18:41:25 252

原创 Log4J2(七) - 观察者模式-配置/脚本热更新是怎么实现的?-源码分析

源码解析,详细介绍Log4J2中对配置以及脚本的热更新

2020-03-23 10:29:20 663

原创 Log4J2(六) - 配置工厂ConfigurationFactory的初始化过程-源码解析

分析Log4J2的配置工厂实例化以及初始化过程

2020-03-19 14:42:49 2299

原创 Log4J2(五) - 配置文件是怎么获取的?

简单解析log4j2的配置文件获取的过程,有图有真相。

2020-03-18 14:10:22 1582 2

原创 log4j2(四) - 日志位置是怎么获取到的?有什么影响?

日志的位置信息包含哪些?%C or $class:类名%F or %file:文件名%L or %line:打印日志的方法所在文件的行数%M or %method:打印日志的方法名%l or %location:包含以上的位置信息打印日志位置有什么影响?官方文档上强调了三遍,位置使用要慎用慎用。相比于不使用位置信息:对于同步日志来说,速度要慢3~5倍对于异步日志来说,速度要...

2020-03-16 15:56:03 1218

原创 SLF4J(七) - 总结

经过这段时间的学习,简单总结一下。最核心的接口:SLF4JServiceProvider,日志实现类通过实现这个接口来绑定核心功能的实现。SLF4J中有三个核心接口:ILoggerFactory: 获取loggerIMarkFactory:获取marker,提供对marker的管理功能MDCAdapter:提供日志系统的context功能其他重要的类:Logging...

2020-03-16 12:19:07 541

原创 SLF4J(六) - MDC/MDCAdapter是什么?

是什么?MDC(Mapped Diagnostic Context,映射调试上下文)是日志系统提供的一种方便在多线程条件下记录日志的功能有什么用?一个常用的场景就是Web服务器中给每个请求都给一个独特的请求id,在合理配置日志的layout之后,所有的日志都会打印这个请求id,这样一个请求下的所有日志信息都可以很方便的找到。一个简单的理解可以认为是全局的marker信息,调用的时候不用类似...

2020-03-13 19:03:20 3370

原创 SLF4J(五) - Marker使用的误区- 源码分析

在之前的文章中我也分享过,如果去使用Marker标记不同的日志来源, 用来简单的做日志分类, 但最近发现使用的过程中有误区,可能会导致以后的替换日志实现框架的时候出现不兼容的问题。以Log4j的实现为例误区使用日志实现类的Marker来创建Marker,如以下的代码:import org.apache.logging.log4j.MarkerManager;import org.apac...

2020-03-13 14:27:09 6389

原创 SLF4J(四)-工厂模式/抽象工厂模式在SLF4J中的实践

早前看设计模式的时候,发现这套东西根本不太适合小项目或者项目开发初期,但最近发现SLF4J这个项目其实也挺小的,但是设计模式玩的挺溜的,然后就想着总结一下,这个项目中用到的设计模式。工厂模式定义:工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

2020-03-12 14:23:21 926

原创 SLF4J(三) NOP Logger是怎么实现的呢?源码分析

文章目录情景代码解析NOPServiceProviderNOPLoggerFactoryNOPMDCAdapterBasicMarkerFactory总结情景我在之前的文章有提到过这个NOP service provider, 这种provider什么都不做,把日志打到/dev/null, 那它是怎么实现的呢?代码解析NOPServiceProvider我们可以看到这个类除去VERSIO...

2020-03-09 18:56:42 1623

原创 log4j2(三) 如何通过类名获取到logger呢?logger与loggerConfig是什么关系?-源码解析

文章目录情景解析从例子说起从LoggerFactory获取logger从LoggerContext中获取logger创建Logger真正的主角LoggerConfig获取LoggerConfig流程图验证小结情景之所以想写这篇文章是因为经常看到一些相关联的问题:怎么有这么多非本项目的log出现? 譬如引入了其他的sdk,他们又很无节操的打了很多日志。怎么去除不必要的包的日志?为什么lo...

2020-03-04 17:45:12 3779 2

原创 SLF4J(二) - SLF4J绑定了多个实现类的错误是怎么一回事儿?源码解析

情景在项目配置的初期,我们经常可以看到这样的错误:SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/Users/liyi/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.j...

2020-03-03 17:18:40 2154

原创 SFL4J(一) - Java中那些剪不断理还乱的日志组件之SFL4J

对Java中常用日志组件的关系梳理,以及SLF4J框架的简单介绍

2020-03-03 14:58:47 484

原创 log4j2(二) 自定义filter-ThreadFilter根据线程名过滤日志

背景项目最新接入了一个sdk,但是这个SDK打印了很多无关紧要的DEBUG日志,造成了严重的信息干扰,现在想去掉这个SDK中指定线程的DEBUG日志解决方案使用Log4j2的插件扩展功能自定义一个插件-ThreadFilter, 参考链接中的Filter部分代码示例Java代码package com.test.filter;import org.apache.commons.lan...

2020-02-28 10:29:54 3292

原创 log4j2(一) MarkerFilter的应用场景及使用示例

背景有一个系统是负责从消息队列收集日志的,现在系统收集到的日志能和这个系统本身的日志分开使用log4j2 <!--log4j2依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifac...

2020-02-27 23:07:58 5730

原创 log4js-node给每个请求加一个id标识符

背景现在的一个node项目目前只是简单的配置了log4js,使用起来体验不是很好。请求与请求之间没有特殊标识,当需要查找某个请求的全部日志的时候,相当费劲ps: 使用的web框架是koa2尝试的解决方案使用koa-request-id, weekly download(2020年2月21日数据)有4000+, 而且有比较多文章都说这个靠谱,但实际上我发现,这个库只是往context中...

2020-02-21 17:02:08 1297 1

原创 Java并发之线程(二)-线程状态流转

线程状态流转通用的线程状态流转(参考极客时间-王宝令《Java并发编程实战》-09 | Java线程(上):Java线程的生命周期)Java线程状态流转(参考《Java并发编程的艺术》), Java的线程状态做了细化,将五态模型中的休眠状态细化变成了WAIT(等待)TIMED_WAITING(超时等待)BLOCKED(阻塞)线程状态的定义参考Java源代码Threa...

2020-02-03 17:12:51 398

原创 Java并发之ThreadLocal

概念ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。作用ThreadLocal允许我们将每个线程 ID 与相应对象的值相关联。 它允许我们为不同的线程存储不同的对象,并维护哪个对象对应于哪个线程。它有 set ...

2020-02-03 16:34:28 303

原创 Java并发之线程(一)

Java中的线程从哪儿来? 协程与线程相比有什么优势?为什么Java里边不用协程呢?

2020-01-31 16:10:44 140

原创 Mysql 索引概念,分类,使用技巧,优化分析总结介绍

文章目录概念有什么用?分类物理存储顺序逻辑存储数据类型b+ tree索引列存储引擎支持InnodbMyisam使用技巧建索引用索引优化分析常见面试题参考文章概念mysql index官方文档索引是数据库管理系统中一种数据结构,用以协助快速查询数据库表中数据,典型的索引结构如B+ tree。有什么用?MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检...

2020-01-22 17:51:30 195

原创 Java动态代理(invocation handler、cglib)简析

简明扼要的介绍Java中的动态代理技术

2020-01-21 16:50:22 614

原创 JUC核心-AQS(AbstractQueuedSynchronizer)简析

AQS是什么?AQS 全称是 AbstractQueuedSynchronizer, 它提供一种依赖于FIFO等待队列的构建锁和同步器的框架。CAS是什么?CAS(Compare And Swap),即比较并交换。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理...

2020-01-20 18:40:10 284

原创 IntelliJ IDEA使用技巧以及常见问题解决方案(mac)

本文详细介绍了idea的常用使用技巧,作者总结的超好用的快捷键,以及常见问题、隐蔽问题的解决方案~

2020-01-20 17:12:03 949

原创 httpie实用指南

Purpose:在命令行界面确实需要一款网络工具,但是curl太难用了, 要记忆的参数符号太多了。相比于curl这个工具的突出特点是命令看上去更加的人性化, 而且有语法高亮Feelings:相比于curl命令上的变化还挺多的而且更加的直观,用官方的话说就是intuitive简单的json使用非常的方便Notes:官方网站命令行命令是httphttp method:...

2020-01-19 18:43:45 328

原创 解决nodejs使用apidoc问题:Cannot read property 'Filter...' of undefined

解决nodejs中使用apidoc遇到的问题:Cannot read property 'Filter...' of undefined。在这里可以找到apidoc使用简体中文的正确打开方式,有代码为证

2020-01-15 15:16:54 2240

原创 Java synchronized 底层实现,原理,面试题总结

全面介绍Java关键词synchronized:1. 深入理解synchronized关键词,介绍其发展历程,底层实现。2. 介绍synchronized锁的范围,升级、降级过程。3. 介绍synchronized关联关键词wait,notify, notifyAll。4. synchronized相关联的常见面试题。

2020-01-14 16:15:06 1692

原创 Java Map、HashMap, ConcurrentHashMap全面总结

这篇文章主要是作者个人整理的Java中Map相关的知识点以及常见面试题,主要是HashMap和ConcurrentHashMap这两个继承类。知识点覆盖全面,值得一看

2020-01-14 13:51:45 525

原创 Node.js redis client用什么? 需要使用redis连接池么?

Nodejs中,我们应该使用什么样的reids客户端呢? 什么样的redis client好用呢? Nodejs中应该使用redis pool?

2020-01-10 17:41:34 2210 1

原创 log4js配置实战示例

log4js是什么?log4js是用node.js中用来处理日志的组件,日志处理功能非常的全面,有了它,日常开发找bug效率提升百倍。工欲善其事必先利其器,做开发做工程,此器比懂。教程关于log4js的教程, 我觉得这篇文章Node.js 之 log4js 完全讲解 可以说讲的很透彻了, 认真消化了只有相信以后log4js的配置必然是驾轻就熟的了。实例代码之所以要写这篇文章,是因为很多人...

2020-01-06 15:47:47 582

原创 Koa参数验证框架调研

现状之前是用java写的web程序,现在接手的一个项目使用nodejs写的,因为是比较老的系统,之前用的koa2-validator作为参数验证工具,结果现在这个依赖现在直接不可用了, 如下图➜ test git:(master) ✗ npm install koa2-validator@1.1.0npm ERR! code ENOVERSIONSnpm ERR! No valid ve...

2020-01-03 15:51:28 2306

原创 KOA框架简介,入门指引

是什么?Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石为什么要用?代码简洁,本身只有1000多行,2020年1月3日统计结果是1848行js代码。代码统计方式如下:➜ koa git:(master) find . -type f -name "*.js" | grep...

2020-01-02 11:43:04 1516 2

原创 Nodejs后端服务配置profile

profile是什么?在应用开发中, 总会遇到开发/测试/预发布/线上环境, 其环境不同, 其具体的配置项也有所不同, 不同环境的配置就可以理解为是不同的profile.如何快速的切换各个环境配置, 进行打包配置, 成了一个小痛点. 在Java环境中如果使用maven进行打包,其自带插件就已经能很好的解决这个问题了,那么在Nodejs环境是否也有相似的工具呢?这就是接下来本问要介绍的内容了~...

2019-12-31 18:11:37 1095

原创 No UserDatabase component found under key UserDatabase(tomcat启动报错)

之前因为电脑蓝屏,导致重启tomcat时候,有这个错误。 原因:工作空间下的.metadata.me_tcat\conf\tomcat-users.xml文件被损坏,无法启动 解决办法:copy一个tomcat-users.xml文件即可

2015-08-04 09:52:29 993

原创 JAVA代码编写规范(摘选)

方法注释模板; @description,@param,@author可选: @return,@exception 2. 行尾注释,如循环结束,模块类结束行 3. 文件开头注释 项目名称 projectname创建日期:{project_name} 创建日期:{date} 修改历史: 版权声明: 4. import不要使用通配符,即,不

2015-07-24 12:09:42 532

原创 JSP 2.0 技术书籍 学习笔记

JSP 2.0 技术手册看完的一些笔记

2015-07-23 18:03:15 441

原创 [Tomcat] classpath resource [hbm.xml] cannot be opened because it does not exist

SSH配置问题,错误很明显,就是hibernate的配置文件有问题,位置不对。查看applicationContext.xml文件,其初始配置如下(example): ./user.hbm.xml ./User.hbm.xml于是我去查找这个文件的位置,发现在做完hibernate reverse engineering之后,在/project/src/下自动生成了一个hbm.xml的

2015-05-28 09:42:21 4842 2

原创 SSH配置中问题 Unable to instantiate Action

问题描述:Struts Problem ReportStruts has detected an unhandled exception: Messages:testLoginAction Unable to instantiate Action, testLoginAction, defined for 'login' in namespace '

2015-05-27 18:01:36 718

GeoLite2-Country.mmdb

GeoLite2-Country.mmdb, country ip db

2016-07-09

gun c library

the gun c library reference manual 包含许多有用的函数库 方便查询 pdf文件

2010-05-01

snipesword

作用:System Clear And Repair 版本号1.0.2.2 语言:中文简体 类型:应用程序

2010-04-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除