- 浏览: 519005 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (278)
- java (41)
- 设计模式 (4)
- sql (10)
- webservice (2)
- spring (9)
- struts (6)
- struts2 (32)
- hibernate (27)
- Struts_hibernate_Spring整合 (4)
- Velocity (1)
- Servlet (9)
- JSP (6)
- javascript (19)
- jquery (10)
- ajax (4)
- html、xml (3)
- JDBC (2)
- JDK (6)
- mysql (2)
- oracle (11)
- SqlServer (1)
- DB2 (4)
- tool (7)
- linux (5)
- UML (1)
- eclipse (8)
- 执行文件 (1)
- 应用服务器 (4)
- 代码重构 (1)
- 日本語 (19)
- 交规 (1)
- office (9)
- firefox (1)
- net (1)
- 测试 (1)
- temp (6)
- 对日外包 (1)
- windows (1)
- 版本控制 (1)
- android (2)
- 项目管理 (1)
最新评论
<!-- Generated by javadoc (build 1.6.0-beta2) on Fri Mar 09 12:53:26 CST 2007 -->
java.util.logging (不用log4j配置,自己写log文件)
FileHandler 可以写入指定的文件,也可以写入文件轮换集。
对于文件轮换集而言,到达每个文件的给定大小限制后,就关闭该文件,将其轮换出去,并打开新的文件。通过在基本文件名中添加 "0"、"1"、"2" 等来依次命名旧文件。
默认情况下,IO 库中启用了缓冲,但当缓冲完成时,每个日志记录都要被刷新。
默认情况下,XMLFormatter 类用于格式化。
配置: 默认情况下,每个 FileHandler 都是使用以下 LogManager 配置属性执行初始化的。如果没有定义属性(或者属性具有非法值),则使用指定的默认值。
- java.util.logging.FileHandler.level 为 Handler 指定默认的级别(默认为 Level.ALL )。
- java.util.logging.FileHandler.filter 指定要使用的 Filter 类的名称(默认为无 Filter )。
- java.util.logging.FileHandler.formatter 指定要使用的 Formatter 类的名称(默认为 java.util.logging.XMLFormatter )。
- java.util.logging.FileHandler.encoding 指定要使用的字符集编码的名称(默认使用默认的平台编码)。
- java.util.logging.FileHandler.limit 指定要写入到任意文件的近似最大量(以字节为单位)。如果该数为 0,则没有限制(默认为无限制)。
- java.util.logging.FileHandler.count 指定有多少输出文件参与循环(默认为 1)。
- java.util.logging.FileHandler.pattern 为生成的输出文件名称指定一个模式。有关细节请参见以下内容(默认为 "%h/java%u.log")。
- java.util.logging.FileHandler.append 指定是否应该将 FileHandler 追加到任何现有文件上(默认为 false)。
模式由包括以下特殊组件的字符串组成,则运行时要替换这些组件:
- "/" 本地路径名分隔符
- "%t" 系统临时目录
- "%h" "user.home" 系统属性的值
- "%g" 区分循环日志的生成号
- "%u" 解决冲突的唯一号码
- "%%" 转换为单个百分数符号"%"
如果未指定 "%g" 字段,并且文件计数大于 1,那么生成号将被添加到所生成文件名末尾的小数点后面。
例如,文件计数为 2 的 "%t/java%g.log" 模式通常导致在 Solaris 系统中将日志文件写入 /var/tmp/java0.log 和 /var/tmp/java1.log,而在 Windows 95 中,则将其写入 C:\TEMP\java0.log 和 C:\TEMP\java1.log。
按照 0、1、2 等的序列安排生成号。
通常,将唯一字段 "%u" 设置为 0。但是如果 FileHandler 试图打开文件名并查找当前被另一个进程使用的文件,则增加唯一的字段号并再次重试。重复此操作直到 FileHandler 找到当前没有被使用的文件名。如果有冲突并且没有指定 "%u" 字段,则将该字段添加到文件名末尾的小数点后(它将位于所有自动添加的生成号后面)。
因此,如果三个进程都试图将日志记录到 fred%u.%g.txt,那么它们可能将 fred0.0.txt、fred1.0.txt、fred2.0.txt 作为其循环序列中的首个文件而结束。
注意,使用本地磁盘文件系统时,使用唯一的 id 以避免冲突是系统可靠运行的唯一保证。
import java.io.IOException; 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; /** * * public FileHandler(String pattern, * int limit, * int count, * boolean append) * throws IOException, * SecurityException初始化要写入文件集的 FileHandler(使用可选的 append)。 * 已向某个文件写入给定限制的数据量(近似)后,则打开另一个文件。输出将在计数文件集中进行循环。 * 根据 LogManager 属性(或其默认值)来配置 FileHandler(给定的模式参数用作文件名模式的情况除外), * 将文件限制设置为限制参数,将文件计数设置为给定的计数参数,将 append 模式设置为给定的 append 参数。 * * 计数必须至少为 1。 * 参数: * pattern - 为输出文件命名的模式。 * limit - 写入到任何一个文件的最大字节数。 * count - 要使用的文件数。 * append - 指定 append 模式。 * */ public class TestLogger { public static void main(String[] args) throws IOException { Logger log = Logger.getLogger("lavasoft"); log.setLevel(Level.INFO); Logger log1 = Logger.getLogger("lavasoft"); // System.out.println(log == log1); //true Logger log2 = Logger.getLogger("lavasoft.blog"); // log2.setLevel(Level.WARNING); FileHandler fileHandler = new FileHandler("c:/testlogger%g.log" ,10000,11,true); fileHandler.setLevel(Level.INFO); fileHandler.setFormatter(new MyLogHander()); log.addHandler(fileHandler); log.info("aaaaaaaddfdfd11111"); // log2.info("bbb"); // log2.fine("fine"); } } class MyLogHander extends Formatter { @Override public String format(LogRecord record) { Date date = new Date(); SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String d = sd.format(date); return "[" + d + "]" + "[" +record.getLevel() + "]" + record.getClass() + " :" + record.getMessage()+"\n"; } }
发表评论
文章已被作者锁定,不允许评论。
-
Java8 ,JDK1.8 新特性
2016-12-08 14:58 777一、接口的默认方法 Java 8允许我们给接口 ... -
Google Guava官方教程 学习
2016-12-05 17:43 349http://ifeve.com/google- ... -
Guava 相关内容(一)
2016-05-20 00:08 525一、Java 不可以变的集合 Guava学习笔记: ... -
poi excel 相关
2015-04-07 11:22 696一、poi excel 分组(group) ... -
java 相关问题(四)
2013-05-24 15:54 1252十九、Java中对Map(HashMap,TreeMap, ... -
apache-common
2013-01-09 10:47 1052... -
Java注释的写法
2012-11-16 15:02 788一. Java 文档 // 注释 ... -
正则表达式
2012-05-25 09:19 977编程的大量工作都是在处理字符串,如验证输入、查 ... -
java 相关问题(三)
2012-03-08 16:31 1510十三、java 实现 调用 打印机 代码详解 ... -
J2EE秘籍
2012-02-13 15:42 724转:http://zhufeng1981.iteye.com/ ... -
java 相关问题(二)
2011-08-02 15:47 1096七、ThreadLocal 详解 首先,Thre ... -
Apache Commons BeanUtils
2011-06-08 17:24 1549功能说明: 顾名思义,Bean Utility就是Bean小 ... -
java 相关问题(一)
2011-05-10 19:16 1036一、 java Cloneable 详 ... -
java 读写 properties
2011-04-19 14:15 1218一、 /* * @(#)RWProper ... -
JMS API 中文版
2011-04-13 14:20 831转:http://www.iteye.com/to ... -
ant 教程
2011-04-12 23:56 1165一、ant 教程 1 Ant是什么? ... -
properties 文件中 定义内容 相关问题
2011-02-22 20:41 2271一、在 properties 文件中 定义{ } 会 ... -
java 线程
2011-02-10 17:07 927一、 Runnable、 Thread ... -
java 静态块 非静态块
2010-09-21 17:39 1425一。一个简单的例子 1. 所有静态的(无论其是变量 ... -
java MessageFormat
2010-09-21 11:03 3513一。 MessageFormat 提供了以 ...
相关推荐
Java 的日志级别比 log4j 更加详细,具体定义在 `java.util.logging.Level` 类中。 - **SEVERE**: 最高级别,表示非常严重的错误。 - **WARNING**: 表示警告信息。 - **INFO**: 一般信息,例如应用程序启动或停止的...
1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如Log4j或者java本身的java.util....
由于commons-logging的存在,你无需直接使用log4j的类,而是通过`java.util.logging.Logger`的接口来实现日志记录,commons-logging会自动找到log4j作为底层实现。 总之,log4j.jar和commons-logging.jar是Java开发...
它是Apache软件基金会的一个开源项目,提供了一个统一的日志接口,允许开发者选择底层的日志实现,如Log4j、java.util.logging或者简单的控制台输出。Commons-Logging的主要优点在于其灵活性,开发者可以更换日志...
这些接口包括最基本的`org.apache.logging.log4j.Logger`,它是所有日志记录的起点,以及`org.apache.logging.log4j.LogManager`,它负责管理日志配置和日志器实例。API库的主要目标是与实现层解耦,允许开发者在不...
它作为一个抽象层,允许开发者选择底层的日志实现,如Log4j、java.util.logging等。在使用Log4j时,这个库作为桥梁,使得应用能够透明地调用Log4j的API。 **二、Log4j配置文件** 在压缩包中,还包含了一份名为`log...
- 在Java项目中,通常会有一个log4j配置文件,用于定义日志记录的级别、输出方式和格式。 - 示例配置: ``` log4j.rootLogger=DEBUG, FILE log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender ...
2. **配置Log4j**: 在你的项目或Tomcat的类路径下(通常是`conf`目录)创建一个名为`log4j.properties`的文件。这个文件用于定义Log4j的行为。例如,你可以设置以下内容来指定日志输出级别和输出目的地: ``` log...
这意味着开发者可以使用commons-logging接口,然后在部署时根据需要选择不同的日志实现,如log4j、java.util.logging或简单的控制台输出。它的主要优点包括: 1. **模块化**:通过抽象日志实现,应用程序代码与特定...
通过在Android项目中集成log4j,我们可以获得比`android.util.Log`更强大的日志功能,包括更灵活的配置、自定义Appender以及丰富的日志级别。然而,使用时需注意性能和安全问题,以确保应用的稳定性和用户数据的...
这个API的主要目的是为了统一不同库的日志输出,使得应用开发者可以选择最适合他们项目的日志框架,如Log4j、java.util.logging或者Logback。 这篇博客"Apache Commons Logging整合Log4j简单例子"显然会引导我们...
首先,我们来看看标题提及的“Tomcat5.5日志管理log4j包文件”,这涉及到的是在Apache Tomcat 5.5版本中集成和配置开源日志框架log4j,以提升日志记录的效率和灵活性。 log4j是Apache软件基金会的一个项目,提供了...
这是一个轻量级的日志记录抽象层,它允许应用程序开发者选择他们偏好的日志框架,如Log4j、Java内置的java.util.logging,或者任何其他兼容的实现。 Commons Logging 提供了一致的API,使得在不同的日志实现之间切换...
在这个文件中,我们将配置JULI(Java Util Logging)来使用Log4j。 ```properties # logging.properties handlers = org.apache.juli.FileHandler, org.apache.log4j.ConsoleHandler org.apache.juli.FileHandler....
与Tomcat的JULI(Java Util Logging)相比,Log4j提供了更丰富的功能和更好的性能。 以下是使用Log4j接管Tomcat日志的步骤: 1. **添加依赖**:将`log4j-1.2.17.jar`添加到Tomcat的`lib`目录。如果Tomcat使用的是...
另外,java.util.logging生成的日志格式与项目中使用Log4j记录的日志格式不一致,这会导致在后期日志分析时出现格式不统一的问题。 为了改善这些问题,Tomcat提供了一种机制,允许我们通过配置和替换特定的jar包来...
Tomcat默认使用了Java的`java.util.logging`框架,也支持通过Log4j或者Logback等第三方日志框架进行日志处理。在Tomcat的`conf/logging.properties`或`conf/log4j.properties`(取决于所使用的日志框架)文件中,...
本教程主要关注如何在Tomcat 9环境中使用SLF4J(Simple Logging Facade for Java)和Log4j2进行日志记录,并解决可能出现的日志不写入问题。 首先,SLF4J是一个日志门面,它为各种日志框架提供了抽象层,如Logback...
`commons-logging-1.1.jar`则是Apache Commons Logging库,它是一个抽象层,允许应用程序在运行时动态选择合适的日志实现,如log4j或java.util.logging。 配置log4j是其使用的关键步骤。压缩包中的`Log4j....
它的主要目的是提供一种统一的API,让开发者可以在不修改代码的情况下,切换不同的日志实现,如Log4j、java.util.logging或logback。commons-logging通过简单的API调用,如`org.apache.commons.logging.LogFactory....