Automic
是一个原子类型包,其中包含了AtomicBoolean,AtomicInteger,AtomicLong等, 原子操作说是这样说的,然而并不是所有的物理机器都支持原子指令,所以不能保证不被阻塞,一般而言,采用的CAS+volatile+native的方法,避免synchronized的使用,如果不支持CAS那就上自旋锁了
接口
log4j
Maven依赖
1 | <dependency> |
log4j.properties
1 | log4j.rootLogger=all, stdout, logfile |
用法
1 | package com.wsx; |
SLF4J
log的实现太多了,log4j,logBack,jdklog,以后想换怎么办呢?
Simple Logging Facade for Java
就像和JDBC一样,SLF4J把所有的日志框架连接起来
五个级别
trace,debug,info,warn,error
啥事不干,写下面的代码
1 | package com.wsx; |
得到了
1 | 22:23:01.931 [main] DEBUG com.wsx.Slf4jStudy - debug |
logback
写一个logback.xml
appender 后面是log的名字,再往后是输出位置:文件或者控制台
level后面跟级别,表示输出哪些东西
1 | <configuration> |
简化
注释太烦了,我们给他全删掉,使用下面的vim指令
\v代表字符模式,把所有的特殊字符看着特殊意义
(.|\n)可以匹配所有的字符
{-}是*的非贪婪匹配
1 | %s/\v\<!--(.|\n){-}--\>//g |
会到logback中
%date是时间,%thread是线程,level是级别,-是左对齐,%logger指名字,%msg是日志输出 %n是换行
1 | <configuration> |
细节
1 | logger.info("hello {} {} {}","I","am","wsx"); |
- 本文作者: fightinggg
- 本文链接: http://fightinggg.github.io/yilia/yilia/Q82D98.html
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!