`
hdmovies
  • 浏览: 2856 次
文章分类
社区版块
存档分类

java.util.logging无配置文件全局日志管理案例

    博客分类:
  • java
阅读更多

程序运行日志对调试程序很有用,JDK提供日志记录功能,网上很多讲述JDK日志功能的帖子只是代码片段,这里提供一个比较完整的案例,主要是注重几个日志相关的类之互相配合使用的关系。代码比较简单,类的说明在手册里也有,就不解释了。

 

package Town;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.*;

/*
 * Created with IntelliJ IDEA.
 * User: cobra
 * Date: 15-12-3
 * Time: 下午4:16
 * To change this template use File | Settings | File Templates.
 */
public class TraceLog {
	private String LogPath ="E:\\data\\Logs\\lucom\\";
	private int logCount = 5;
	private int LogLimit = 10000000;	//指定要写入到任意文件的近似最大量(以字节为单位) 10M
	private static  LogManager logManager = LogManager.getLogManager();
	private static Logger InfoLog;
	private static Logger ErrLog;

	public TraceLog () {
		if (logManager.getLogger("LogInfo") == null) {
			iniInfoLog();
		} else {
			InfoLog = logManager.getLogger("LogInfo");
		}
		if (logManager.getLogger("LogErr") == null) {
			iniErrLog();
		} else {
			ErrLog = logManager.getLogger("LogErr");
		}
	}
	//初始化info日志
	private void iniInfoLog () {
		String InfoLogFile = "traceinfo%g.%u.log";
		InfoLog = Logger.getLogger("LogInfo");
		try {
			FileHandler InfoFileHandler = new FileHandler(LogPath+InfoLogFile , LogLimit, logCount,true);
			InfoFileHandler.setLevel(Level.INFO);
			InfoFileHandler.setFormatter(new Formatter() {
				@Override
				public String format(LogRecord record) {
					return (new SimpleDateFormat("[yyyy-MM-dd HH:mm:ss.SSS]").format(new Date()))+":"+record.getLevel()+":"+record.getMessage()+"\n";
				}
			});
			InfoLog.addHandler(InfoFileHandler);
			logManager.addLogger(InfoLog);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	//初始化Err日志
	private void iniErrLog () {
		String ErrLogFile = "traceerr%g.%u.log";
		ErrLog = Logger.getLogger("LogErr");
		try {
			FileHandler ErrFileHandler = new FileHandler(LogPath+ErrLogFile , LogLimit,logCount,true);
			ErrFileHandler.setLevel(Level.WARNING);
			ErrFileHandler.setFormatter(new Formatter() {
				@Override
				public String format(LogRecord record) {
					return (new SimpleDateFormat("[yyyy-MM-dd HH:mm:ss.SSS]").format(new Date()))+":"+record.getLevel()+":"+record.getMessage()+"\n";
				}
			});
			ErrLog.addHandler(ErrFileHandler);
			logManager.addLogger(ErrLog);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public void logInfo (String LoggingMessage)
	{
		InfoLog.info(LoggingMessage);
	}
	public void logErr (String LoggingMessage)
	{
		ErrLog.warning(LoggingMessage);
	}
}

 

0
1
分享到:
评论
1 楼 lmf462696585 2015-12-05  
说好的手册呢

相关推荐

    java.util.logging.Logger使用详解

    在Java中,`java.util.logging.Logger` 是标准的日志框架之一,它提供了基础的日志记录功能。为了使用这一功能,首先需要获得 `java.util.logging.Logger` 的实例。可以通过调用 `Logger` 类中的静态方法 `getLogger...

    java.util.Date与java.sql.Date相互转换

    ### Java.util.Date与Java.sql.Date相互转换 #### 知识点概述 在Java开发中,经常需要处理日期和时间相关的操作。Java标准库提供了两个重要的日期类:`java.util.Date` 和 `java.sql.Date`。虽然它们名字相似,但...

    用java.util.zip包现数据压缩与解压

    ### 使用 Java.util.zip 包实现数据压缩与解压 在计算机科学领域,数据压缩技术是一项重要的功能,它能够帮助减少存储空间的需求以及提高网络传输效率。本文将通过一系列的示例来详细介绍如何利用 Java 中的 `java....

    java并发工具包 java.util.concurrent中文版用户指南pdf

    1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...

    Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException)

    "java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError" 是一个典型的错误提示,它表明在并发执行过程中遇到了内存不足的问题。下面我们将深入探讨这个问题的原因、影响以及如何解决。 内存溢出...

    java.util包

    Java提供日期(Data)类、日历(Calendar)类,随机数(Random)类,堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构

    tomcat配置生成的日志文件按照日期新建工具

    Tomcat默认使用了Java的`java.util.logging`框架,也支持通过Log4j或者Logback等第三方日志框架进行日志处理。在Tomcat的`conf/logging.properties`或`conf/log4j.properties`(取决于所使用的日志框架)文件中,...

    无法解析类型 java.util.Map$Entry。从必需的 .class 文件间接引用了它

    这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家

    java.util.concurrent

    java.util.concurrent总体概览图。 收取资源分3分。需要的同学可以下载一下。 java.util.concurrent主要包括5个部分executor,colletions,locks,atomic,tools。 该图详细的列举了并发包下面的结构,包含所有接口和...

    Java中的`java.util.stream.Collectors.toMap()`方法有什么作用

    在Java中,java.util.stream.Collectors.toMap()方法是一个非常实用的工具,它允许我们将流(Stream)中的元素收集到一个Map中。这个方法是Collectors类中的一个静态方法,它实现了Collector接口,用于在流的终止...

    java.util.TimeZone 的世界时区列表

    ### Java.util.TimeZone的世界时区列表解析 #### 一、概述 `java.util.TimeZone` 是Java标准库中的一个类,用于表示不同时区的信息。本文档提供了通过`java.util.TimeZone`类导出的世界范围内时区列表。该列表不仅...

    Java Date Time教程-java.util.Date

    Java的java.util.Date类是Java初的时间类之一。该类的大部分方法已不推荐使用,取而代之的是java.util.Calendar类。不过你仍然可以使用java.util.Date类去表示某个时间。下面是一个如何实例化java.util.Date的例子:...

    Java Logger Logging 封装

    总之,`LoggerUtil`是对`java.util.logging.Logger`的扩展和优化,旨在提供更强大、灵活的日志管理能力。通过封装,我们可以统一管理和控制日志输出,提高代码质量,同时方便问题排查和系统监控。对于大型项目而言,...

    深入剖析jdk的java.util包

    jdk源码java.util包,所有类解析,包含整体架构及各个类详解

    Tomcat输出catalina.out的大小控制

    在Tomcat的`conf`目录下,有一个名为`logging.properties`的文件,它是Java日志系统(java.util.logging)的配置文件。你可以通过修改此文件来定制日志行为。例如,你可以创建一个文件Handler,设置其日志文件大小...

    org.jasig.cas.client.util.CommonUtils

    予org.jasig.cas.client.util.CommonUtils 加入 public static void disableSSLVerification(){ try { // Create a trust manager that does not validate certificate chains TrustManager[] ...

    axis2解决 org.apache.axis2.util.JavaUtils.callStackToString问题

    在开发基于Axis2的Web服务时,可能会遇到各种错误和异常,其中之一就是与`org.apache.axis2.util.JavaUtils.callStackToString`相关的问题。这个问题通常出现在Axis2尝试获取并打印堆栈跟踪信息时。 `...

    java.util.ConcurrentModificationException 解决方法

    java.util.ConcurrentModificationException 解决方法 ... at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$KeyIterator.next(HashMap.java:828) 例如以下程序(转

    log4j.properties

    log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如Log4j或者java本身的java.util.logging。...

    java swing用Logger输出错误日志.docx

    总之,Java Swing应用可以通过`java.util.logging`包中的`Logger`类,结合`logging.properties`配置文件或在代码中动态设置,实现对错误日志的记录和管理。这不仅可以帮助开发者调试程序,也是生产环境中监控系统...

Global site tag (gtag.js) - Google Analytics