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的封装,在前人(原文件来自网络)的类上完善了文件的控制,使得日志文件可以重入。
通过简化日志记录来加快开发速度, 提高类型安全性以减少错误, 简化单元测试,尤其是使用CDI时, 通过以下方法提高内存和CPU性能: 将阵列初始化和自动装箱推迟到实际需要时, 异步java.util.logging.Handler实现...
log4j.properties ,commons-logging-1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志...可以通过配置文件来设定最终使用log4j还是java.util.logging.没有配置log4j的时候,就会调用java.util.logging包。
splunk-jul 简单的 java.util.logging 格式化程序将有意义的日志输出为 Splunk 可以本地读取的日志格式 - 无需对 splunk 转发器配置进行任何更改。 如何使用 java.util.logging (JUL... java.util.logging.handlers=ja
【项目源码】-java网络五子棋游戏 ... import java.awt.AlphaComposite;...import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; /** * 登录面板 *
java 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包 而在 java 6/7 / 8 时关于这个API 都是捆绑在
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....
import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support....
java.util.logging java.util.prefs java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax.activity javax.annotation javax.annotation.processing javax.crypto ...
commons-codec-1.6.jar commons-lang-2.6.jar commons-logging-1.1.1.jar fastjson-1.2.15.jar httpclient-4.2.1.jar httpcore-4.2.1.jar jetty-util-9.3.7.v20160115.jar
java.util.logging java.util.prefs java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax.activity javax.annotation javax.annotation.processing javax.crypto ...
ava.util.concurrent.atomic java.util.concurrent.locks java.util.function java.util.jar java.util.logging java.util.prefs java.util.regex java.util.spi
java.util.logging 到 SLF4J 配置打包一个 logging.properties ,它只是将 SLF4JBridgeHandler 注册为唯一的处理程序,有效地将所有 jul 日志语句重定向到 SLF4J。 有关更多详细信息,请参阅 。
关闭tomcat报错,网络搜索整理 严重: The web application [/img] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to... To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
java.security.cert [9 examples] java.sql [73 examples] java.text [26 examples] java.util [50 examples] java.util.jar [5 examples] java.util.logging [20 examples] java.util...
Packages ...com.kingdee.bos.logging.management com.kingdee.bos.management com.kingdee.bos.management.config com.kingdee.bos.management.util com.kingdee.bos.metadata ...com.kingdee.bos.orm.util...
记录一次报错解决方法: ...org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level' to java.util.Map<java.lang.String, java.la
java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java....