package wxy.XXXX.Utils;
import java.util.Date;
public class LogTools {
//私有化构造对象
private LogTools(){}
//是否输出调试信息标识
private static boolean isDebug=true;
//禁止输出调试信息
public static void disDebug(){
isDebug=true;
}
/*
* debug
* info
* warn
* error
*/
public static void Debug(Class<?> c,Object msg){
if(!isDebug){return;}
//获取格式化时间格式
java.text.SimpleDateFormat format=new java.text.SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");
//获取格式化的当前时间
String InfoTime=format.format(new Date());
//在屏幕上打印出调试信息
System.out.println("Debug:"+msg+" /"+c.getSimpleName()+" TIME-"+InfoTime);
}
public static void Info(Class<?> c,Object msg){
if(!isDebug){return;}
//获取格式化时间格式
java.text.SimpleDateFormat format=new java.text.SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");
//获取格式化的当前时间
String InfoTime=format.format(new Date());
//在屏幕上打印出调试信息
System.out.println("Info:"+msg+" /"+c.getSimpleName()+" TIME-"+InfoTime);
}
public static void Warn(Class<?> c,Object msg){
if(!isDebug){return;}
//获取格式化时间格式
java.text.SimpleDateFormat format=new java.text.SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");
//获取格式化的当前时间
String InfoTime=format.format(new Date());
//在屏幕上打印出调试信息
System.out.println("Warn:"+msg+" /"+c.getSimpleName()+" TIME-"+InfoTime);
}
public static void Error(Class<?> c,Object msg){
if(!isDebug){return;}
//获取格式化时间格式
java.text.SimpleDateFormat format=new java.text.SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");
//获取格式化的当前时间
String InfoTime=format.format(new Date());
//在屏幕上打印出调试信息
System.out.println("Error:"+msg+" /"+c.getSimpleName()+" TIME-"+InfoTime);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("LogTools test!");
LogTools.Info(String.class,"this is Info Test!");
LogTools.Debug(String.class, "this is Debug Test!");
LogTools.Error(String.class, "this is Error Test!");
LogTools.Warn(String.class, "this is Warn Test!");
}
}
分享到:
相关推荐
自定义日志模块(接口及代理实现),而不直接使用第三方日志框架接口,避免在日志框架升级或者切换时,代码过多耦合。 这个举例说明一下: 比如,在某一项目开始时使用的是“log4j”框架,后面经过研究发现“sf4j...
在FreeSwitch中,开发者可以通过自定义模块来扩展其功能,满足特定需求。本篇文章将深入探讨如何定义和优化自定义模块,以及处理自定义事件。 首先,理解FreeSwitch模块的生命周期是至关重要的。一个模块通常包括...
### Django 实现自定义访问日志模块详解 在 Web 开发中,日志记录是非常重要的一个环节,它能够帮助开发者追踪应用的行为、诊断问题并优化性能。Django 作为 Python 最流行的 Web 框架之一,虽然内置了一些日志功能...
一个良好的日志模块应当允许用户自定义日志级别,以适应不同的开发阶段和使用场景。 "EasyLog"作为压缩包子文件的名称,可能是指这个日志模块的实现或示例代码库。这通常包含源代码、示例程序、文档等资源,供...
通过分析和使用"易语言log日志模块源码",开发者可以学习到如何在易语言环境中实现高效且实用的日志系统,这对于提升软件质量和维护性具有积极意义。同时,这个模块也可以作为一个基础,进一步定制化以适应特定项目...
【log4cpp开源框架详解与日志模块实现】 log4cpp是一个流行的开源日志框架,源自Java的日志处理项目log4j,它为C++程序员提供了灵活的日志记录功能。框架的核心理念是通过Category(分类)、Appender(输出器)、...
内容概要:springboot+拦截器+aop+自定义注解+本地线程实现统一接口日志记录,记录下接口所在模块、接口描述、接口请求参数、接口返回参数、接口请求时间以及接口耗时用于接口优化,接口记录参数以及操作人防止使用...
7. **可扩展性**:好的日志模块应该允许用户添加自定义的日志处理器,比如发送邮件、推送通知等。 8. **日志过滤**:根据关键字或者特定条件过滤日志,只输出符合要求的信息,有助于定位问题。 9. **库的使用与...
这可以通过在模块文件顶部添加三引号(`"""`)包围的多行文本实现。 通过以上步骤,我们可以创建一个完全定制化的Ansible模块,如“mondo_deploy.py”,它可能包含了应用部署的复杂逻辑,如检查环境、下载文件、配置...
8. 扩展性:好的日志模块应该允许用户自定义日志处理器,以便适应不同的应用场景,如发送邮件通知、对接日志服务等。 在C++ Builder中,实现日志功能通常可以通过以下方式: 1. 使用第三方库:例如log4cpp、log4c...
日志模块的设计还考虑了【可移植性】,使用了标准C++和Boost线程库,这样可以跨编译器和平台使用。此外,提供用户设置模块行为的接口,允许用户自定义日志文件位置、过滤特定级别日志,增强了系统的灵活性。 日志...
在实现自定义日志模块时,可以考虑以下步骤: 1. **设计日志结构体**:创建一个结构体,包含日志级别、时间、线程ID、模块名、日志消息等字段。 2. **定义日志级别枚举**:定义如DEBUG、INFO、WARNING等枚举值,...
这个小型日志模块可能借鉴了这些框架的设计思想,也可能有其独特的实现方式,如自定义的日志接口和适配器,以满足特定的需求。 6. **使用和配置**: 使用这个日志模块时,开发者需要在代码中引入相应的依赖,并...
工单预约表单plus模块V2.0.4原版模块打包工单预约表单plus是支持自定义的万能表单模块 支持普通表单、付费报名、预约服务等三合一功能 支持一键导出全部主题数据,或导出分类下全部主题数据。 源码更新日志: 该...
`Logback`和`Log4j`都是广泛使用的日志框架,它们允许自定义日志格式和处理策略。 2. **SpringMVC返回报文脱敏**:`SpringMVC`是Spring框架的一个模块,主要用于构建Web应用。在响应报文时,如果包含了敏感信息(如...
其次,ILFW日志模块具备强大的日志格式化能力,允许自定义日志输出格式,包括时间戳、线程ID、进程ID、模块名、函数名、日志级别等信息,使得日志更具可读性和分析价值。此外,模块还支持JSON等结构化格式,方便后期...
下面我们将详细探讨C语言日志模块的设计、实现以及其在实际应用中的作用。 首先,C语言日志模块的核心功能是提供一种有序、结构化的记录方式,帮助开发者追踪程序运行状态。日志通常包含时间戳、日志级别(如DEBUG...
Boost.Log不仅支持基本的日志记录,如输出文本消息,还支持自定义日志级别、过滤器、日志目标(如文件、控制台或网络)以及格式化。此外,它具备高性能和线程安全特性,使得在多线程环境中使用变得简单。 二、`...
一套成熟的系统往往都有相应的日志系统,以便调试查看 Qt的打印信息默认处理程序将消息打印到X11下的标准输出或Windows下的调试器,其实...Qt 打印日志系统,实现打印日志保存,过期删除,窗口显示日志,网络传输日志