- 浏览: 76381 次
- 性别:
- 来自: 广州
文章分类
最新评论
今天学习java.util.logging类包方便以后查看。
这里以一个例子说明:
定义自己的formmater
读取sockethandler的服务端
Handler 对象从 Logger 中获取日志信息,并将这些信息导出。例如,它可将这些信息写入控制台或文件中,也可以将这些信息发送到网络日志服务中,或将其转发到操作系统日志中。
java类库提供了以上几种handler实现
上图是java.util.logging的uml
这里以一个例子说明:
import java.util.logging.ConsoleHandler; import java.util.logging.FileHandler; import java.util.logging.Formatter; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.Logger; import java.util.logging.LoggingMXBean; import java.util.logging.MemoryHandler; import java.util.logging.SimpleFormatter; import java.util.logging.SocketHandler; public class LoggingProgramSetPubSubpro { public static void main(String[] args) throws Exception { LogManager lm = LogManager.getLogManager(); Logger logger = Logger.getLogger("loggingTest"); Logger logger1 = Logger.getLogger("loggingTest.b"); lm.addLogger(logger); lm.addLogger(logger1); logger.setLevel(Level.INFO);//这个设定最重要 Handler consoleHandler = new ConsoleHandler();//控制台handler consoleHandler.setLevel(Level.ALL); Formatter ft1 = new YAYFormatter();//定义自己的formatter consoleHandler.setFormatter(ft1); logger.addHandler(consoleHandler); Handler fh = new FileHandler("c:\\java%g.log");//文件handler logger.addHandler(fh);//一个logger可以有多个handler Formatter ft = new SimpleFormatter();//FileHandler默认的Formatter是XMLFormatter fh.setFormatter(ft); fh.setLevel(Level.OFF); Handler handler = new SocketHandler("localhost", 8099); //网络handler handler.setFormatter(new SimpleFormatter()); logger.addHandler(handler); Handler meh = new MemoryHandler(fh,1,Level.WARNING);//内存handler,当目标target的level等级超过Level.WARNING时向target push记录 logger.addHandler(meh); logger.severe("嚴重訊息"); logger.warning("警示訊息"); logger.info("一般訊息"); logger.config("設定方面的訊息"); logger.fine("細微的訊息"); logger.finer("更細微的訊息"); logger.finest("最細微的訊息"); LoggingMXBean mx = LogManager.getLoggingMXBean(); logger.info("loggingTest的level是:"+mx.getLoggerLevel("loggingTest")); logger.info("loggingTest的父 logger 名称是:"+mx.getParentLoggerName("loggingTest.b")); logger.info(mx.getLoggerNames().size()+"" ); consoleHandler.close(); fh.close(); meh.close(); handler.close(); } }
定义自己的formmater
import java.util.logging.Formatter; import java.util.logging.LogRecord; public class YAYFormatter extends Formatter { @Override public String format(LogRecord logRecord) { return "LogRecord info: " + logRecord.getSourceClassName() +//就是哪个类里面用的了你 "\n" +"Level\t|\tLoggerName\t|\tMessage\t|\n" + logRecord.getLevel() + //是SEVERE还是WARNING还是别的 "\t|\t" + logRecord.getLoggerName() +//这个logger发布者 "\t|\t" + logRecord.getMessage() + //消息内容 "\t|\n\n"; } }
读取sockethandler的服务端
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import javax.net.ServerSocketFactory; public class LogServer { private static final int PORT_NUM = 8099; public static void main(String args[]) { ServerSocketFactory serverSocketFactory = ServerSocketFactory.getDefault(); ServerSocket serverSocket = null; try { serverSocket = serverSocketFactory.createServerSocket(PORT_NUM); } catch (IOException ignored) { System.err.println("无法创建服务"); System.exit(-1); } System.out.printf("LogServer 运行端口: %s%n", PORT_NUM); while (true) { Socket socket = null; try { socket = serverSocket.accept(); InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader( new InputStreamReader(is, "GBK")); String line = null; while ((line = br.readLine()) != null ) { System.out.println(line); } } catch (IOException exception) { // 处理下在个请求. } finally { if (socket != null) { try { socket.close(); } catch (IOException ignored) { } } } } } }
Handler 对象从 Logger 中获取日志信息,并将这些信息导出。例如,它可将这些信息写入控制台或文件中,也可以将这些信息发送到网络日志服务中,或将其转发到操作系统日志中。
java类库提供了以上几种handler实现
上图是java.util.logging的uml
发表评论
-
java io字符读写
2010-12-15 13:05 693... -
RandomAccessFile类学习
2010-12-15 11:59 968在正式介绍如何使用Java的输入/输出相关类来进行文件存取前, ... -
比较java.io.Externalizable和java.io.Serializable
2010-12-15 10:52 867转http://soft.zdnet.com.cn/softw ... -
SequenceInputStream(顺序输入流)学习
2010-12-14 17:56 888转http://imain.iteye.com/blog/26 ... -
PipedInputStream与PipedOutputStream类
2010-12-14 17:39 1199转http://tzj163.blog.163.com/blo ... -
ObjectOutputStream和ObjectInputStream类的学习
2010-12-14 17:02 1223ObjectOutputStream和ObjectInputS ... -
java io学习
2010-12-14 13:58 768下图是java.io输入流的uml图 InputStrea ... -
java rmi学习
2010-12-06 10:01 740转载http://blog.sina.com.cn/s/blo ... -
理解JAVA事件机制
2010-12-05 13:53 772转载http://ajava.org/course/java/ ... -
Java Proxy代理学习
2010-12-05 11:36 911在Java中利用代理(Proxy)可以在运行时创建一个实现了一 ...
相关推荐
### Java.util.logging.Logger 使用详解 #### 一、创建Logger对象 在Java中,`java.util.logging.Logger` 是...通过本文的学习,开发者能够更好地掌握 `java.util.logging` 框架的核心概念,并在实际项目中灵活运用。
1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如Log4j或者java本身的java.util....
org.springframework.web.util.Log4jConfigListener.class org.springframework.web.util.Log4jConfigServlet.class org.springframework.web.util.Log4jWebConfigurer.class org.springframework.web.util....
在Java编程语言中,`java.util.ServiceLoader` 是一个实用工具类,用于加载符合特定接口或抽象类的服务提供者。这个工具在Java平台标准版(Java SE)中被广泛使用,尤其是在实现模块化和插件化系统时。下面将详细...
在Java 6、7和8中,Java平台的标准版(Java SE)包含了Java企业版(Java EE)的一些API,如JAXB(Java Architecture for XML Binding)。然而,从Java 9开始,为了实现模块化并提高系统的可维护性和安全性,Java EE...
49. `android.util.Log`:Android的日志工具类,用于输出调试信息。 50. `android.content.Intent`:Intent用于启动其他组件或传递数据。 51. `java.lang.reflect.InvocationTargetException`:当调用反射方法时抛...
Tomcat默认使用了Java的`java.util.logging`框架,也支持通过Log4j或者Logback等第三方日志框架进行日志处理。在Tomcat的`conf/logging.properties`或`conf/log4j.properties`(取决于所使用的日志框架)文件中,...
java.util.logging.FileHandler.pattern = %h/java%u.log ``` 这里,`%h`代表用户的家目录,`%u`是一个解决冲突的唯一数字,`%g`用于区分循环日志的版本号。此外,可以设置每个文件的最大大小、循环文件的数量以及...
Java.util 源码分析 Java.util 包是 Java 核心库的重要组成部分,它包含了许多用于日常编程的工具类和接口,如集合框架、日期时间处理、随机数生成、事件处理等。深入理解这个包的源码对于提升Java开发者的技能至关...
Java Util日志记录改进程序(JULI) 尽管很少有人将首选的框架java.util.logging (JUL)嵌入到Java中,所以它对最少的应用程序有帮助,但并不是最容易使用。 这个库轻轻地包装起来,使生活更轻松: 通过简化日志...
在Java开发中,日志管理是不可或缺的一部分,它帮助我们跟踪程序运行状态、定位错误和调试问题。Log4j作为一款广泛使用的日志框架,历经多次迭代,现在已经发展到了Log4j2。本文将详细探讨Log4j2中的两个关键组件:...
例如,`Log.d(tag, message)`用于打印DEBUG级别的日志,其中`tag`是日志的标识,`message`是具体的信息。 3. 日志过滤器:通过`adb logcat`命令,开发者可以在终端上查看设备上的日志,并使用过滤器筛选特定的日志...
import java.util.regex.PatternSyntaxException; import javax.sql.DataSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans....
log4j.appender.ROLLING_FILE.File=rolling.log //文件位置,也可以用变量${java.home}、rolling.log log4j.appender.ROLLING_FILE.Append=true //true:添加 false:覆盖 log4j.appender.ROLLING_FILE.MaxFileSize=10...
log.setLevel(Level.INFO); log.info("111"); } } ``` 此外,Logger也提供了一个LogManager类,用于读取和写入日志配置文件。例如,在下面的示例代码中,我们使用LogManager来读取一个名为logging.properties的...
java.util.logging.FileHandler.pattern = %h/java%u.log java.util.logging.FileHandler.limit = 50000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util....
`Logger`是Java标准库`java.util.logging`包提供的日志工具,它提供了多种级别的日志记录,如`SEVERE`、`WARNING`、`INFO`、`CONFIG`、`FINE`、`FINER`和`FINEST`。本篇文章将深入探讨Java中的`Logger`封装,以及...
安卓开发-Android 主流的图片浏览的全屏缩放效果SmoothImageDemo软件...import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.wi
1. **Logger**: Ibatis提供了一个日志接口`org.apache.ibatis.logging.Log`,而`ibatis.util.LogFactory`则负责根据用户配置的实现(如Log4j、SLF4J或Java内置的日志系统)创建对应的日志实例,用于记录SQL执行和...
通过上述内容,我们不仅了解了如何在Java中使用`java.util.Timer`和`java.util.TimerTask`来实现定时任务,而且还学习了如何在Web应用中利用这些工具来完成周期性的任务。这种方法特别适用于需要定期执行某些操作的...