java Logger 类
package org.rx.common; import org.slf4j.LoggerFactory; import java.util.Collections;
import java.util.List;
import java.util.function.Function;
import java.util.regex.Pattern; import static org.rx.common.Contract.require; public final class Logger {
static final org.slf4j.Logger log1, log2; static {
System.setProperty("bootstrapPath", App.getBootstrapPath());
log1 = LoggerFactory.getLogger("infoLogger");
log2 = LoggerFactory.getLogger("errorLogger");
} public static org.slf4j.Logger getSlf4j(Class signature) {
return getSlf4j(signature, Collections.emptyList(), null);
} public static org.slf4j.Logger getSlf4j(Class signature, List<String> regs, String cacheMethodName) {
require(signature, regs); Function<String, org.slf4j.Logger> func = k -> {
Class owner = signature;
if (!regs.isEmpty()) {
String fType;
if ((fType = NQuery.of(Thread.currentThread().getStackTrace()).select(p -> p.getClassName())
.firstOrDefault(p -> NQuery.of(regs).any(reg -> Pattern.matches(reg, p)))) != null) {
owner = App.loadClass(fType, false);
}
}
return org.slf4j.LoggerFactory.getLogger(owner);
};
return cacheMethodName != null ? App.getOrStore("Logger" + signature.getName() + cacheMethodName, func)
: func.apply(null);
} public static void debug(String format, Object... args) {
if (!log1.isDebugEnabled()) {
return;
} String msg = args.length == 0 ? format : String.format(format, args);
log1.debug(msg);
} public static void info(String format, Object... args) {
String msg = args.length == 0 ? format : String.format(format, args);
log1.info(msg);
} public static void error(Throwable ex, String format, Object... args) {
String msg = args.length == 0 ? format : String.format(format, args);
log2.error(msg, ex);
}
}
java Logger 类的更多相关文章
- 关于Java Logger类的使用问题 - 内存不释放
原文地址:http://www.ihuxu.com/p/236.html 说明:这是一个利用Java Logger类的示例,完成简单的日志记录功能.代码中有部分类库没有说明,但不影响阅读. 本人技 ...
- Mybatis包分页查询java公共类
Mybatis包分页查询java公共类 分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条 ...
- Java工具类:给程序增加版权信息
我们九天鸟的p2p网贷系统,基本算是开发完成了. 现在,想给后端的Java代码,增加版权信息. 手动去copy-paste,太没有技术含量. 于是,写了个Java工具类,给Java源文件 ...
- Java:类与继承
Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知 ...
- java时间类简单总结
java时间类(Data类) 1.Data类(没有考虑到国际化,好多方法已过时java.util.Data包中) 父类(是类不是接口含有直接子类3个): 日期格式为:年月日时分秒(不包含毫秒部分) ...
- Java Calendar 类的时间操作
Java Calendar 类的时间操作 标签: javaCalendar时间Date 2013-07-30 17:53 140401人阅读 评论(7) 收藏 举报 分类: 所有(165) Java ...
- Disabling default console handler in Java Logger by codes
The open source packages usu. relies on log4j or Java Logger to print logs, by default the console h ...
- Java File类总结和FileUtils类
Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...
- 漫谈 Java 实例化类
Java 中实例化类的动作,你是否还是一成不变 new 对应对象呢? 经手的项目多了,代码编写量自然会增加,渐渐的会对设计模式产生感觉. 怎样使书写出来的类实例化动作,高内聚,低耦合,又兼具一定的扩展 ...
随机推荐
- javascript 对象的设计模式
1.为什么学习设计模式:http://www.iteye.com/news/32092 或 https://blog.csdn.net/pigpigpig4587/article/details ...
- HDU 1724 Ellipse (自适应辛普森积分)
题目链接:HDU 1724 Problem Description Math is important!! Many students failed in 2+2's mathematical tes ...
- Struct和Union的sizeof计算
struct 结构体的大小不是简单的成员相加,要考虑存储空间的字节对齐 1.空结构体的大小为1 2.含有static的结构体在计算大小时不算上static变量,因为static存储在全局数据空间,而s ...
- jsp页面间的传值方法
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...
- css篇-简化版
[CSS篇]简化版 (1) CSS盒模型 CSS盒模型 题目:谈谈你对CSS盒模型的认识 1) 基本概念:标准模型+IE模型 2) 标准模型和IE模型的区别 计算宽度和 ...
- 【java】记录一下java的常用用法
1.二维数组 public static void main(String[] args) { //定义 int a[][] = {{1,2,3},{4,5,6},{7,8,9}}; int [][] ...
- Python之switch
首先声明,Python没有switch!!! 通过函数与字典的结合实现 #!/usr/bin/python #coding:utf-8 from __future__ import division ...
- go中的string操作
strings 判断字符串s是否以prefix开头 strings.HasPrefix(s string,preffix string) bool: 判断字符串s是否以suffix结尾 stirngs ...
- 算法竞赛模板 动态规划之背包DP
① 01背包 有n件物品和一个容量为v的背包.第i件物品的价值是c[i],体积是w[i].求解将哪些物品装入背包可使价值总和最大. 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放. ...
- xargs使用之空格处理
xargs指定分隔符为'\n' (默认用空格分隔) locate xxx | xargs -d '\n' ls -l xargs使用 -0 参数会以字符串的'\0'结尾为分隔符,可以在文本传给xarg ...