首页 > 编程语言 >java logAdaper日志适配器

java logAdaper日志适配器

时间:2023-02-10 14:23:05浏览次数:34  
标签:logAdaper java String 适配器 static void msg logger public

组件开发中日志的引入。

# LogAdapter : log 适配器
##依赖
Spring中有一个依赖:spring-jcl.jar 用于适配日志框架。类名为:org.apache.commons.logging.LogAdapter
     <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jcl</artifactId>
            <version>5.3.24</version>
        </dependency>
 


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactoryService;

import java.text.SimpleDateFormat;

public class MyLog {

    private static class LogInfo {
		public String name;
		public String methodName;
		public long lineNumber;
		public String threadName;
		@Override
		public String toString() {
			//return " [" + threadName + "] " + name + " - " + methodName + "- " + lineNumber + "";
			return name;
		}
	}

	private static String getCurDateTimeStr() {
 		SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
		return dateformat.format(System.currentTimeMillis());
	}

	private static LogInfo getEnterClassName() {
		Thread cur = Thread.currentThread();
		LogInfo logInfo = new LogInfo();
		int iLevel = 4;
		if (cur != null) {
			StackTraceElement[] ary = cur.getStackTrace();
			logInfo.threadName = cur.getName();

			if ((ary != null) && (ary.length > iLevel)) { 
				logInfo.name = ary[iLevel].getClassName();
                logInfo.methodName = ary[iLevel].getMethodName();
				logInfo.lineNumber = ary[iLevel].getLineNumber();
			}
		}
		return logInfo;
	}

	private static void baseinfo(String msg) {
		 Log logger  =LogFactoryService.getLog(getEnterClassName().name);

 //        logger.info(msg);
         logger.info(String.format("-  ThreadId %s : %s",  Thread.currentThread().getId(),   msg));
	}

	private static void basedebug(String msg) {
		Log logger  =LogFactoryService.getLog(getEnterClassName().name);
//        logger.debug(  msg );
         logger.debug(String.format("-  ThreadId %s : %s",  Thread.currentThread().getId(),  msg));
	}

	private static void baseerror(String msg) {
		Log logger  =LogFactoryService.getLog(getEnterClassName().name);
//        logger.error(msg);
        logger.error(String.format(" -  ThreadId %s : %s",  Thread.currentThread().getId(),  msg));
	}

	public static void info(String msg) {
		baseinfo(msg);
	}
	
	public static void info(String msg, Object... arguments) {
		String newMsg = msg.replaceAll("\\{\\}", "\\%s");
		baseinfo(String.format(newMsg, arguments));
	}
	
	public static void error(String msg) {
		baseerror(msg);

	}
	
	public static void error(String msg, Object... arguments) {
		String newMsg = msg.replaceAll("\\{\\}", "\\%s");
		baseerror(String.format(newMsg, arguments));
	}

	public static void error(String msg, Exception exp) {
		baseerror(msg);
		if (null != exp) {
			exp.printStackTrace();
		}
	}

	public static void debug(String msg) {
		basedebug(msg);
	}

	public static void debug(String msg, Object... arguments) {
		String newMsg = msg.replaceAll("\\{\\}", "\\%s");
		basedebug(String.format(newMsg, arguments));
	}
}

  



##包装使用
Mylog.debug("");
Mylog.info("");
Mylog.error("");


标签:logAdaper,java,String,适配器,static,void,msg,logger,public
From: https://www.cnblogs.com/heshana/p/17108748.html

相关文章

  • java中的setLayOut(null)怎么理解
    我们都知道,当我们创建好一个新的窗口后,我们要在这个窗口上面添加组件但是当我们新建了一个Panel实例并且对它使用setBound()方法后运行出来的结果与我们的预期有很大出入,那......
  • Java使用代码调用接口http根据ip访问
    HttpClient的主要功能:实现了所有HTTP的方法(GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS等)支持HTTPS协议支持代理服务器(Nginx等)等支持自动(跳转)转向详细使用示例声......
  • Java多线程06——JUC并发包02
    1线程的同步工具类​​CountDownLatch​​​​CountDownLatch​​同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。​​CountDownLatch......
  • 【转载】Java 有序生成订单号或流水号
    前言  最近用到了一些编号的生成规则记录一下,有序的生成订单号或者流水号概述  第一种方式,适用于循环生成订单编号,例如有100条数据,需要循环生成相对应编号可以使用,下......
  • 测开-面试题-Java基础
    1 垃圾回收机制? 2SpringBoot的好处? 3 Java中的map有没有了解? 4 webservice接口有用过吗?答:有。在学校做过一个项目——和风天气,做客户端开发的时候,使用webse......
  • Java流程控制
    一、用户交互Scanner对象包:java.util.Scanner获取用户的输入基本语法Scanners=newScanner(System.in);通过该类的next()和nextLine()方法获取输入的字符......
  • Java程序员就业方向有哪些?
    目前在软件类岗位,Java软件开发工程师所占的比例最大,达到60%以上。根据IDC的统计数字,在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的50%以上。那么,Java......
  • 关于 JavaScript 中柯里化函数的实现,附带详细解析!
    前言大家好,我是CoderBin,在面试当中,手撕代码的场景屡见不鲜,手写JS当中的方法更是最常见的一种,所以本文将全面的,详细解析柯里化函数的实现原理,并手写出自己的柯里化函数,相......
  • java根据excel某些格子特定内容归类文件(定值单分类工具)
      packagecom.xxx.controller;importjava.io.File;importjava.io.IOException;importjava.nio.file.Files;importjava.nio.file.Path;importjava.nio.fi......
  • java 环境配置
    linuxopenjdkdownload_url:https://www.openlogic.com/openjdk-downloads源码包安装java11tar-zxvfjdk-11.0.14_linux-x64_bin.tar.gz-C/usr/local/cat>>/......