package com.ming.util; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; /** * 文本记录日志 * * @author Ming * @update 2016-11-30 17:13:00 (1,使用子线程写入文本日志;2,添加异常日志记录) * */ public class LogUtil { private static String log_path = getBasePath();// 日志保存路径 private static String log_name = "yxt_log";// 日志文件名(前部分) private static boolean console_out = true;// 日志是否输出到控制台 /* * yyyy-MM: 每个月更新一个log日志 yyyy-ww: 每个星期更新一个log日志 yyyy-MM-dd: 每天更新一个log日志 * yyyy-MM-dd-a: 每天的午夜和正午更新一个log日志 yyyy-MM-dd-HH: 每小时更新一个log日志 * yyyy-MM-dd-HH-mm: 每分钟更新一个log日志 */ private static String update_hz = "yyyy-MM";// 更新日志的频率,每月更新一次 private static long max_log_size = 1024 * 1024 * 10;// 单个日志文件最大大小 10M public static void debug(String msg) { runWrite(msg, log_path, log_name + "_debug"); } public static void info(String msg) { runWrite(msg, log_path, log_name + "_info"); } public static void error(String msg) { runWrite(msg, log_path, log_name + "_error"); } public static void exception(Exception e) { String errorMessage = e.getMessage() + ""; StackTraceElement[] eArray = e.getCause().getStackTrace(); for (int i = 0; i < eArray.length; i++) { String className = e.getCause().getStackTrace()[i].getClassName(); String MethodName = e.getCause().getStackTrace()[i].getMethodName(); int LineNumber = e.getCause().getStackTrace()[i].getLineNumber(); errorMessage = errorMessage + "\n\t---" + className + "." + MethodName + ",\tline:" + LineNumber; } logResult(errorMessage, log_path, log_name + "_exception"); } /** * 日志根目录 * * @return */ public static String getBasePath() { String s = Thread.currentThread().getContextClassLoader().getResource("").getPath(); s = s.substring(0, s.indexOf("WEB-INF")) + "log" + File.separator; return s; } /** * 写日志 * * @param sWord * 要写入日志里的文本内容 */ public static void logResult(String sWord) { runWrite(sWord, log_path, log_name); } public static void logResult(String sWord, String logPath, String logName) { FileWriter writer = null; try { File dir = new File(logPath); if (!dir.exists()) { dir.mkdirs(); } String dt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()); File f = new File(logPath + logName + "_" + new SimpleDateFormat(update_hz).format(new Date()) + ".txt"); if (!f.exists()) { f.createNewFile(); sWord = "AllMing 日志\r\n" + "[" + dt + "]\t" + sWord; } else { long logSize = f.length(); // 文件大小超过10M,备份 if (logSize >= max_log_size) { String backLogName = logPath + logName + new SimpleDateFormat("_yyyy-MM-dd.HHmmss.SSS").format(new Date()) + ".txt"; f.renameTo(new File(backLogName)); } } writer = new FileWriter(f, true); writer.write("[" + dt + "]\t" + sWord + "\r\n"); if (console_out) { System.out.println("[" + dt + "]\t" + sWord); } } catch (Exception e) { System.out.println("记录日志异常:" + e.toString()); e.printStackTrace(); } finally { if (writer != null) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } } public static void runWrite(final String sWord,final String logPath,final String logName) { new Thread() { public void run() { logResult(sWord, logPath, logName); } }.start();; } public static void main(String[] args) { for (int i = 0; i <1000; i++) { error(""+i); } } }
相关推荐
java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志...
在Java编程中,日志工具类的实现是一个非常重要的部分,尤其在开发复杂项目时,良好的日志系统能够帮助开发者追踪程序运行状态、定位错误、分析性能等。本篇文章将详细探讨如何创建一个自定义的日志工具类,以便在...
在给定的描述中,这个Java日志工具类不仅支持在控制台上实时显示日志信息,还具备将日志数据持久化到文件的能力。这样的设计有助于在不影响程序运行的情况下收集和保存日志,尤其是在生产环境中,当需要分析历史日志...
总的来说,这个"JAVA版简单日志工具类"为小型Java项目提供了一种轻量级的日志解决方案,既满足了基本的日志记录需求,又保持了代码的简洁性和可扩展性。通过合理使用,可以在开发过程中极大地提高效率。
调用方法:IndexDataLog.print(入参),可以设置文件大小,文件写满以后自动创建新的日志文件。一般用来记录用户的搜索词,或操作记录。目前以json格式保存日志,入参稍作修改,可以传入对象,linux和windows都支持。
[工具类] 记录log日志文件的工具类 .java.txt [工具类] 连接数据库的工具类 .java.txt [工具类] 使用Java程序来实现HTTP文件的队列下载 .java.txt [工具类] 文件操作工具类 .java.txt [工具类] 序列化保存为XML文件...
总结来说,这个压缩包提供的内容涵盖了Java编程中的几个核心概念:工具类的实用方法、异常处理的统一策略以及灵活的日志系统。这些组件是构建健壮、可维护的Java应用的基础,对于任何Java开发者来说,理解和掌握这些...
[工具类] 记录log日志文件的工具类 .java.txt [工具类] 连接数据库的工具类 .java.txt [工具类] 使用Java程序来实现HTTP文件的队列下载 .java.txt [工具类] 文件操作工具类 .java.txt [工具类] 序列化保存为XML文件...
`RabbitmqUtil` 是一个专门为Java开发者设计的工具类,简化了与RabbitMQ交互的复杂过程,使得开发者能够更快速、更方便地发送和接收消息。 首先,我们来详细了解一下`RabbitmqUtil`工具类的主要功能: 1. **连接...
"Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...
在Java编程中,工具类(Util Classes)是包含各种实用方法的静态类,它们提供了一种简化常见任务的方式。"java常用工具类封装"是指将常见的功能如线程管理、数据解析、第三方库集成等进行封装,以提高代码的可重用性...
Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...
在Java编程中,工具类(Utility Classes)是非常重要的组成部分,它们提供了许多通用的功能,以简化开发人员的工作。以下是对"一些java常用的工具类"的详细说明。 首先,工具类通常包含静态方法,这些方法不依赖于...
在实际开发中,这个工具类可以帮助开发者更高效地实现如日志分析、用户行为追踪、推荐系统等功能。通过集成测试和示例代码,开发者可以快速理解和使用这些预封装的方法,提高开发效率,减少出错概率。 总之,...
本压缩包提供的"ffmpeg java 封装工具类"正是为了解决这个问题,它将FFmpeg的功能与Java编程语言相结合,提供了一套易于使用的API。 一、FFmpeg Java 封装工具类介绍 这个工具类通常包括以下核心功能: 1. **命令...
Java短信服务工具类是开发过程中常见的一种实用组件,主要用于实现应用程序与短信服务提供商之间的交互。在Java编程中,这样的工具类通常包含了一系列方法,用于发送、接收和处理短信。下面我们将详细探讨Java短信...
7. **日志管理工具类**:Java的标准日志框架是`java.util.logging.Logger`,但它功能相对简单。更强大的有Log4j、SLF4J(Simple Logging Facade for Java)和Logback,它们提供了更灵活的日志配置和更丰富的日志级别...
- Log工具类:自定义日志打印,便于调试和分析程序运行情况。 - SharedPreferences工具类:简化SharedPreferences的读写操作。 - Android权限管理工具类:处理Android运行时权限的请求和检查。 - 网络状态检测...
在Android开发中,日志工具类(通常称为`Logger`)是开发者进行调试和问题排查的重要工具。Android系统提供了一个内置的日志系统,允许开发者输出不同级别的日志信息,包括`VERBOSE`、`DEBUG`、`INFO`、`WARN`、`...
[工具类] 记录log日志文件的工具类 .java [工具类] 连接数据库的工具类 .java [工具类] 使用Java程序来实现HTTP文件的队列下载 .java [工具类] 文件操作工具类 .java [工具类] 序列化保存为XML文件的工具类 ....