log工具类
package com.pt.platform.core.common; import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class JYLoggerUtil
{
private static final Logger log = LoggerFactory.getLogger(JYLoggerUtil.class); private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private static ThreadLocal<Map<String, Date>> threadMap = new ThreadLocal(); public static <T> void info(Class<T> clazz, String message)
{
Logger logger = LoggerFactory.getLogger(clazz);
logger.info(message);
} public static <T> void info(Class<T> clazz, String message, Throwable t) {
Logger logger = LoggerFactory.getLogger(clazz);
logger.info(message, t);
} public static <T> void debug(Class<T> clazz, String message) {
Logger logger = LoggerFactory.getLogger(clazz);
logger.debug(message);
} public static <T> void error(Class<T> clazz, String message)
{
Logger logger = LoggerFactory.getLogger(clazz);
logger.error(message);
} public static <T> void error(Class<T> clazz, String message, Exception ex) {
Logger logger = LoggerFactory.getLogger(clazz);
logger.error(message, ex);
} public static <T> void logCurrentTime(String key, boolean isStart, Class<T> cls)
{
if (!log.isInfoEnabled()) return; Map timeMap = (Map)threadMap.get();
if (timeMap == null) {
timeMap = new HashMap();
threadMap.set(timeMap);
} String mapKey = cls.getName() + ":" + key;
Date curDate = new Date();
if (isStart) {
timeMap.put(mapKey, curDate);
} else {
Date lastDate = (Date)timeMap.get(mapKey);
if (lastDate != null) {
timeMap.remove(mapKey);
StringBuilder logInfo = new StringBuilder("========="); logInfo.append(",(位置:").append(cls.getName());
logInfo.append(",内容:").append(key).append(")");
logInfo.append(",间隔:").append(curDate.getTime() - lastDate.getTime());
logInfo.append(",开始start:").append(sdf.format(lastDate));
logInfo.append(",结束end:").append(sdf.format(curDate)).append("========="); log.info(logInfo.toString());
threadMap.remove();
}
}
}
}
log工具类的更多相关文章
- Android开发中有用工具之--Log工具类
在开发的过程中.我们常常会使用Log来输出日志,帮助我们来调试程序 可是有时候并不能全然满足我们的须要 ,比方我想知道这个日志信息是来自于哪一个包 哪一个类 所以我们封装一个这个Log类.方便我们的使 ...
- Android util.Log 工具类
Android中的日志工具类是Log(android.util.Log),这个类中提供了如下5个方法来供我们打印日志. Log.v().用于打印那些最为琐碎的.意义最小的日志信息.对应级别verbos ...
- 封装Log工具类
public class LogUtil { public static final int VERBOSE = 1; public static final int DEBUG = 2; publi ...
- Android Log工具类
import java.text.SimpleDateFormat; import java.util.Date; import android.util.Log; public class LogU ...
- 封装一个简单好用的打印Log的工具类And快速开发系列 10个常用工具类
快速开发系列 10个常用工具类 http://blog.csdn.net/lmj623565791/article/details/38965311 ------------------------- ...
- Android常见工具类封装
MD5加密 import android.annotation.SuppressLint; import java.security.MessageDigest; public class MD5 { ...
- android的Log日志打印管理工具类(一)
android的Log日志的打印管理工具类: package com.gzcivil.utils; import android.util.Log; /** * 日志打印管理 * * @author ...
- Log 日志工具类 保存到文件 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Android开发之封装log打印日志的工具类,实用logutils详细代码
public final class LogUtil { /** all Log print on-off */ private final static boolean all = true; /* ...
随机推荐
- Logstash学习之路(二)Elasticsearch导入json数据文件
一.数据从文件导入elasticsearch 1.数据准备: 1.数据文件:test.json 2.索引名称:index 3.数据类型:doc 4.批量操作API:bulk {"index& ...
- 2021升级版微服务教程3—Eureka完全使用指南
2021升级版SpringCloud教程从入门到实战精通「H版&alibaba&链路追踪&日志&事务&锁」 默认文件1610014380163 教程全目录「含视 ...
- MFC3 基本对话框的使用(三) 滑块与进度条(sdnu)(C++大作业)
一.完成界面 运行前: 运行后: 二.工具 (1)滑块 (2)进度条 (3)文本框 (4)文本示例 (5)按钮 三.添加变量 四.添加事件 右键单击主对话框空白部分,打开类向导,选择"消息& ...
- 使用vs code搭建Q#开发环境 (Mac)
Q# 是微软几年前发布的一门用于模拟量子编程的语言. 3年前我在当时风靡的博客网站 ITEYE 上发布过如何在windows上搭建其开发环境:Q#开发环境搭建.时过境迁,不但iteye不知何处去,连Q ...
- 敏捷史话(三):笃定前行的勇者——Ken Schwaber
很多人之所以平凡,并不在于能力的缺失,而是因为缺乏迈出一步的勇气.只有少部分的人可以带着勇气和坚持,走向不凡.Ken Schwaber 就是这样的人,他带着他的勇气和坚持在敏捷的道路上不断前行,以实现 ...
- 区间合并 C++
#include <iostream> #include <vector> #include <algorithm> using namespace std; ty ...
- 八:架构,搭建,WAF
WAF防护分析 什么是WAF应用 如何快速识别WAF 识别WAF对于安全测试的意义 CMS识别技术 源码获取技术 架构信息获取 站点搭建分析 搭建习惯-目录型站点 sti.blcu-bbs 目录型站点 ...
- 18.java设计模式之中介者模式
基本需求 智能家庭包括各种设备,闹钟.咖啡机.电视机.窗帘等 要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为:闹铃响起->咖啡机开始做咖啡->窗帘自动落下-> ...
- leetcode 321. 拼接最大数(单调栈,分治,贪心)
题目链接 https://leetcode-cn.com/problems/create-maximum-number/ 思路: 心都写碎了.... 也许就是不适合吧.... 你是个好人... cla ...
- CWE 4.3:强化你的数据自我保护能力
摘要:如何通过软件自动的检查法规中涉及的数据保护, 新版的CWE 4.3 给出了一个解决途径. 1. 按照惯例,先说故事 用12月初在深圳参加的"全球C++及系统软件技术大会"里C ...