package sunfa.lx;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
/**
* 此类就算是我在极度无聊之时对JAVA包的学习吧。虽然很多人认为java.util.logging这个包很烂。。。但是
* 有的时候我们懒得去导log4j包,作为稀烂的轻量级的日志包,有的时候它或许还有那么点存在的价值。 就像
* 你我他/她们虽然不能为这个世界做啥子贡献,但依然在这个世界上存在着。。。
*/
public class MyLoggerUtilDemo1 {
public static void main(String[] args) {
MyLoggerUtil myLogger = new MyLoggerUtil(MyLoggerUtilDemo1.class.getName(),
"c:\\123.log");
myLogger.info("输出日志信息");
// myLogger.info(Level.WARNING,"11大额订单达");
for (int i = 0; i < 5; i++) {
myLogger.writeToFile("11:" + i);
}
//记录异常信息
try {
throw new NullPointerException();
} catch (Exception e) {
e.printStackTrace();
myLogger.logException(e);
}
try {
throw new IllegalArgumentException("抛出的异常");
} catch (Exception e) {
e.printStackTrace();
myLogger.logException(e);
}
}
}
class MyLoggerUtil extends Formatter {
private Logger log;
private String path;
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
public MyLoggerUtil(String name, String path) {
this.log = Logger.getLogger(name);
this.path = path;
if (this.path != null && !this.path.equals("")) {
try {
FileHandler fileHandler = new FileHandler(path);
fileHandler.setFormatter(this);
log.addHandler(fileHandler);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void info(Level newLevel, String msg) {
log.setLevel(newLevel);
log.info(msg);
}
public void info(String msg) {
log.info(msg);
}
public void writeToFile(String msg) {
log.info(msg);
}
@Override
public String format(LogRecord record) {
String s = record.getLevel() + ":" + getDateStr(record.getMillis())
+ "\n\t\t" + record.getMessage()+"\n";
if(record.getThrown()!=null){
StackTraceElement[] stack = record.getThrown().getStackTrace();
for (int i = 0; i < stack.length; i++) {
s+=stack[i];
}
}
return s ;
}
public void logException(Exception e){
StringWriter trace = new StringWriter();
e.printStackTrace(new PrintWriter(trace));
log.info(trace.toString());try {
trace.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
private String getDateStr(long millis) {
return simpleDateFormat.format(new Date(millis));
}
}
分享到:
相关推荐
### Java.util.logging.Logger 使用详解 #### 一、创建Logger对象 在Java中,`java.util.logging.Logger` 是标准的日志框架之一,它提供了基础的日志记录功能。为了使用这一功能,首先需要获得 `java.util.logging...
总之,`LoggerUtil`是对`java.util.logging.Logger`的扩展和优化,旨在提供更强大、灵活的日志管理能力。通过封装,我们可以统一管理和控制日志输出,提高代码质量,同时方便问题排查和系统监控。对于大型项目而言,...
通过简化日志记录来加快开发速度, 提高类型安全性以减少错误, 简化单元测试,尤其是使用CDI时, 通过以下方法提高内存和CPU性能: 将阵列初始化和自动装箱推迟到实际需要时, 异步java.util.logging.Handler实现...
【项目源码】-java网络五子棋游戏 ... import java.awt.AlphaComposite;...import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; /** * 登录面板 *
log4j.properties ,commons-logging-1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志...可以通过配置文件来设定最终使用log4j还是java.util.logging.没有配置log4j的时候,就会调用java.util.logging包。
例如,如果使用`java.util.logging`,可以在`logging.properties`中设置` handlers`为`java.util.logging.FileHandler`,并定义`pattern`属性为包含日期的格式,如: ```properties handlers = java.util.logging....
splunk-jul 简单的 java.util.logging 格式化程序将有意义的日志输出为 Splunk 可以本地读取的日志格式 - 无需对 splunk 转发器配置进行任何更改。 如何使用 java.util.logging (JUL... java.util.logging.handlers=ja
5. **`java.util.logging.Logger`**:Java内置的日志系统,用于记录程序运行过程中的信息、警告和错误,便于调试和问题定位。 6. **`java.text.SimpleDateFormat`与`java.time.format.DateTimeFormatter`**:用于...
每个具体的日志框架都有对应的适配器,例如`Log4jLoggerAdapter`对应Log4j,`java.util.logging.LoggerAdapter`对应Java Util Logging。 4. **配置**: Commons Logging的配置通常通过环境变量、系统属性或配置文件...
2. **手动添加依赖**:在Java 9及以上版本中,你需要单独引入JAXB API及相关库的JAR包。这包括`javax.activation-1.2.0.jar`,`jaxb-api-2.3.0.jar`,`jaxb-core-2.3.0.jar`和`jaxb-impl-2.3.0.jar`。你可以在Maven...
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter ``` Java原生日志工具Logger提供了一个灵活的日志处理机制,允许开发者自定义日志的输出级别、输出目标和格式,并提供了一个默认的...
handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler ``` 在`logging.properties`中,还可以设置日志级别,决定哪些级别的消息会被记录。例如,以下配置将控制台日志级别设为INFO及以上: ...
22. **`java.util.logging.Logger`**: 日志记录工具。 23. **`java.util.concurrent.locks.Lock`** 和 **`java.util.concurrent.locks.ReentrantLock`**: 锁机制,用于线程同步。 24. **`java.util.ArrayList`**: ...
handlers = 1/java.util.logging.FileHandler, java.util.logging.ConsoleHandler .FileHandler.level = ALL .FileHandler.pattern = %h/catalina.%u.%g.log .FileHandler.limit = 1000000 .FileHandler.count ...
12. **`java.util.logging.Logger`**:日志记录工具,用于输出程序运行时的信息。 13. **`java.lang.StringBuilder`/`StringBuffer`**:用于字符串的拼接,比使用`+`操作符更高效。 14. **`java.util.stream....
11. **`java.util.logging.Logger`**: 日志记录工具,允许开发者在应用程序中记录信息,方便调试和分析。 12. **`java.util.regex` 包**: 支持正则表达式,提供了`Pattern`和`Matcher`类进行文本模式匹配和查找...
java.util.logging java.util.prefs java.util.regex java.util.zip javax.accessibility javax.activity javax.crypto javax.crypto.interfaces javax.crypto.spec javax.imageio javax.imageio.event ...
java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java....
33. `java.util.logging.Logger`:Logger用于记录应用程序的日志信息。 34. `java.io.UnsupportedEncodingException`:当指定的字符编码不受支持时抛出的异常。 35. `org.junit.Before`:JUnit注解,标记在测试...
在java中使用json需要引入以下六个jar包,分别为: commons-lang-2.4.jar commons-collections-3.2.1.jar commons-beanutils-1.8.3.jar json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar commons-logging-1.1.3.jar ...