LogUtil

java 源生日志,不需引入多余的jar包,自己写下

package test;


import java.io.IOException;
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * 日志工具:组装自己的日志,减少引入包了
 * 
 * @author ZengWenfeng
 * @date 2019.10.10
 * @email 117791303@QQ.com
 * @mobile 13805029595
 */
public class LogUtil
{
	Logger logger = Logger.getLogger(LogUtil.class.getName());
	
	
	public String getTest()
	{
		return Thread.currentThread().getStackTrace()[0].getMethodName();
	}
	
	public int getLineNumber()
	{
		return Thread.currentThread().getStackTrace()[1].getLineNumber();
	}
	
	public String getMethodName()
	{
		return Thread.currentThread().getStackTrace()[2].getMethodName();
	}
	
	public String getFileName()
	{
		return Thread.currentThread().getStackTrace()[1].getFileName();
	}
	
	public void log(String message)
	{
		Object[] params2 = {"zwf1111", 22222};
		
		
		logger.setLevel(Level.INFO);
		
		ConsoleHandler handler = new ConsoleHandler();
		handler.setLevel(Level.INFO);
		logger.addHandler(handler);
		
		FileHandler handlerFile = null;
		try
		{
			handlerFile = new FileHandler("E:/zwf.log");
		} catch (SecurityException e)
		{
			e.printStackTrace();
		} catch (IOException e)
		{
			e.printStackTrace();
		}
		handlerFile.setFormatter(new FileLogFormatter());
		handlerFile.setLevel(Level.FINEST);
		logger.addHandler(handlerFile);
		
		
		
		logger.log(Level.SEVERE, "行号:" + getLineNumber() + ": 文件:" + getFileName() + ": 方法名" + getMethodName() + ":  teste ww" +  getTest());
		logger.log(Level.WARNING, "2");
		Object[] params3 = {"3333", getMethodName()};
		logger.log(Level.INFO, "param0:{0}, param1:{1}", params3);
		Object[] params4 = {"4444", 4444};
		logger.log(Level.CONFIG, "param0:{0}, param1:{1}", params4);
		logger.log(Level.FINE, "param0:{0}, param1:{1}", params2);
		logger.log(Level.FINER, "param0:{0}, param1:{1}", params2);
		logger.log(Level.FINEST, "param0:{0}, param1:{1}", params2);
		
		
		logger.log(Level.INFO, "param0:{0}", getFileName());
		logger.warning("sdfsdfs");
	}
	
	public static void main(String[] args)
	{
		LogUtil l = new LogUtil();
		l.log("zwf");
	}
}

 

package test;

import java.util.logging.Formatter;
import java.util.logging.LogRecord;

public class FileLogFormatter extends Formatter
{
	public String format(LogRecord record)
	{
		StringBuffer rtnFmtStr = new StringBuffer();
		rtnFmtStr.append(record.getLevel());
		rtnFmtStr.append(":");
		rtnFmtStr.append(record.getMessage());
		rtnFmtStr.append("\n");
		return rtnFmtStr.toString();
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android开发中,我们经常会使用Log来打印日志。但是,Android原生的Log输出信息有限,为了更好地输出和管理日志,我们可以自定义LogUtil。 下面是一个简单的LogUtil类,可以自定义输出日志级别、输出信息格式等: ```java public class LogUtil { private static final String TAG = "LogUtil"; private static boolean sDebug = true; // 是否打印日志 private static boolean sSaveLog = false; // 是否保存日志到文件 private static String sLogPath = Environment.getExternalStorageDirectory().getPath() + "/log.txt"; // 日志保存路径 public static void setDebug(boolean debug) { sDebug = debug; } public static void setSaveLog(boolean saveLog) { sSaveLog = saveLog; } public static void setLogPath(String logPath) { sLogPath = logPath; } public static void v(String msg) { if (sDebug) { Log.v(TAG, msg); } saveLogToFile("V", TAG, msg); } public static void d(String msg) { if (sDebug) { Log.d(TAG, msg); } saveLogToFile("D", TAG, msg); } public static void i(String msg) { if (sDebug) { Log.i(TAG, msg); } saveLogToFile("I", TAG, msg); } public static void w(String msg) { if (sDebug) { Log.w(TAG, msg); } saveLogToFile("W", TAG, msg); } public static void e(String msg) { if (sDebug) { Log.e(TAG, msg); } saveLogToFile("E", TAG, msg); } private static void saveLogToFile(String level, String tag, String msg) { if (sSaveLog) { try { File file = new File(sLogPath); FileWriter fw = new FileWriter(file, true); BufferedWriter bw = new BufferedWriter(fw); bw.write("[" + level + "] " + tag + ": " + msg + "\n"); bw.close(); fw.close(); } catch (IOException e) { Log.e(TAG, "saveLogToFile: " + e.getMessage()); } } } } ``` 使用方法: ```java LogUtil.setDebug(true); // 设置是否打印日志 LogUtil.setSaveLog(true); // 设置是否保存日志到文件 LogUtil.setLogPath("/sdcard/log.txt"); // 设置日志保存路径 LogUtil.v("verbose log"); LogUtil.d("debug log"); LogUtil.i("info log"); LogUtil.w("warning log"); LogUtil.e("error log"); ``` 以上就是一个简单的LogUtil类的实现,可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值