黄江建设网站,沈阳最权威男科医院,哪个网站可以查企业信息,公司网站的设计方案1、java日志记录错误的文件、方法、行号、报错信息StackTraceElement s e.getStackTrace()[0];1.1、记录保存的文件s.getFileName()1.2、记录保存的方法s.getMethodName()1.3、记录报错的行号 s.getLineNumber()1.4、记录报错的信息(不全面) e.getMessage()1.5、互利报错的类名…1、java日志记录错误的文件、方法、行号、报错信息StackTraceElement s e.getStackTrace()[0];1.1、记录保存的文件s.getFileName()1.2、记录保存的方法s.getMethodName()1.3、记录报错的行号 s.getLineNumber()1.4、记录报错的信息(不全面) e.getMessage()1.5、互利报错的类名字 e.getClassName()1.6、打印详细的堆栈信息 logger.error(错误堆栈, e);获取堆栈信息如果直接打印e则会将它toString/*** 获取堆栈信息* param throwable* return*/public static String getStackTrace(Throwable throwable){StringWriter sw new StringWriter();PrintWriter pw new PrintWriter(sw);try{throwable.printStackTrace(pw);return sw.toString();} finally{pw.close();}}import org.slf4j.Logger;import org.slf4j.LoggerFactory;/*** Desc: 异常打印日志 提供给打印非正常异常* Author HealerJean* Date 2018/8/21 下午6:41.*/public static void log(Throwable e,Class c){Logger logger LoggerFactory.getLogger(c);// logger.error(错误堆栈, e);StackTraceElement s e.getStackTrace()[0];//数组长度为 1logger.error(\n\n-----------------\n报错文件名:s.getFileName()\n报错的类s.getClassName()\n报错方法s.getMethodName()\n报错的行 s.getLineNumber()\n报错的message e.getMessage()\n错误堆栈\ngetStackTrace(e)\n------------------\n\n);}1.2 、使用public static void main(String[] args) {try {int i 1/0 ;}catch (Exception e){log(e,ExceptionLogUtils.class );}}11:40:53.732 [main] ERROR com.duodian.youhui.admin.utils.ExceptionLogUtils ------------------报错文件名:ExceptionLogUtils.java报错的类com.duodian.youhui.admin.utils.ExceptionLogUtils报错方法main报错的行68报错的message/ by zero错误堆栈java.lang.ArithmeticException: / by zeroat com.duodian.youhui.admin.utils.ExceptionLogUtils.main(ExceptionLogUtils.java:68)------------------2、打印变量日志log.info(cacheMsg RECUR_FIGHT A: roomId {}, userId {}, toUid {}, room.getRoomId(), ctx.getUserId(), toUid);3、info打印更多的信息3.1、打印方法public static void logInfo(String msg,Class c){Logger logger LoggerFactory.getLogger(c);String location;StackTraceElement[] stacks Thread.currentThread().getStackTrace();System.out.println(stacks.length); //长度为3for(StackTraceElement stackTraceElement:stacks){logger.info(\n\n**************\n打印文件名stackTraceElement.getFileName() \n打印类名 stackTraceElement.getClassName() \n方法名 stackTraceElement.getMethodName() \n行号 stackTraceElement.getLineNumber() \n打印内容:msg\n**************\n\n);System.out.println(location);}}3.2、测试1、是当前线程2、当前打印所在方法3、是调用该方法的类那么我们需要的就是第三个public static void main(String[] args) {logInfo(HealerJean,ExceptionLogUtils.class);}311:44:47.685 [main] INFO com.duodian.youhui.admin.utils.ExceptionLogUtils -**************打印文件名Thread.java打印类名java.lang.Thread方法名getStackTrace行号1559打印内容:HealerJean**************11:44:47.689 [main] INFO com.duodian.youhui.admin.utils.ExceptionLogUtils -**************打印文件名ExceptionLogUtils.java打印类名com.duodian.youhui.admin.utils.ExceptionLogUtils方法名logInfo行号31打印内容:HealerJean**************11:44:47.689 [main] INFO com.duodian.youhui.admin.utils.ExceptionLogUtils -**************打印文件名ExceptionLogUtils.java打印类名com.duodian.youhui.admin.utils.ExceptionLogUtils方法名main行号49打印内容:HealerJean**************1和3总结package com.duodian.youhui.admin.utils;import lombok.extern.slf4j.Slf4j;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.PrintWriter;import java.io.StringWriter;/*** Desc: 异常打印日志 提供给打印非正常异常* Author HealerJean* Date 2018/8/21 下午6:41.*/Slf4jpublic class ExceptionLogUtils {public static void log(Throwable e,Class c){Logger logger LoggerFactory.getLogger(c);// logger.error(错误堆栈, e);StackTraceElement s e.getStackTrace()[0];//数组长度为 1logger.error(\n\n-----------------\n报错文件名:s.getFileName()\n报错的类s.getClassName()\n报错方法s.getMethodName()\n报错的行 s.getLineNumber()\n报错的message e.getMessage()\n错误堆栈\ngetStackTrace(e)\n------------------\n\n);}/*** 获取堆栈信息* param throwable* return*/public static String getStackTrace(Throwable throwable){StringWriter sw new StringWriter();PrintWriter pw new PrintWriter(sw);try{throwable.printStackTrace(pw);return sw.toString();} finally{pw.close();}}public static void logInfo(String msg,Class c){Logger logger LoggerFactory.getLogger(c);StackTraceElement[] stacks Thread.currentThread().getStackTrace();//数组长度为 3logger.info(\n\n**************\n打印文件名stacks[2].getFileName() \n打印类名 stacks[2].getClassName() \n方法名 stacks[2].getMethodName() \n行号 stacks[2].getLineNumber() \n打印内容:msg\n**************\n\n);}}4、打印变量log.info(admin[{}],[{}],[{}];请求地址:[{}];访问ip:[{}], CasConfig.RemoteUserUtil.getRemoteUserId(),CasConfig.RemoteUserUtil.getRemoteUserAccount(),CasConfig.RemoteUserUtil.getRemoteUserName(),request.getRequestURL(), IpUtil.getIp());如果满意请打赏博主任意金额感兴趣的在微信转账的时候添加博主微信哦 请下方留言吧。可与博主自由讨论哦支付包微信微信公众号