`
ljl_xyf
  • 浏览: 632817 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java swing用Logger输出错误日志

    博客分类:
  • java
阅读更多

Logger所对应的属性文件在安装jdk目录下的jre/lib/logging.properties
logging.properties文件中的
handlers= java.util.logging.ConsoleHandler  将日志内容输出到控制台
handlers= java.util.logging.FileHandler     将日志文件输出到文件中
handlers= java.util.logging.ConsoleHandler,java.util.logging.FileHandler 将日志内容同时输出到控制台和文件中

# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO   //日志输出级别

java.util.logging.FileHandler.pattern = %h/java%u.log  为生成的输出文件名称指定一个模式。
模式由包括以下特殊组件的字符串组成,则运行时要替换这些组件:

  • "/" 本地路径名分隔符
  • "%t" 系统临时目录
  • "%h" "user.home" 系统属性的值
  • "%g" 区分循环日志的生成号
  • "%u" 解决冲突的惟一号码
  • "%%" 转换为单个百分数符号"%" 

如果未指定 "%g" 字段,并且文件计数大于 1,那么生成号将被添加到所生成文件名末尾的小数点后面。

java.util.logging.FileHandler.limit = 50000   限制文件的大小,以字节为单位
java.util.logging.FileHandler.count = 1       指定有多少输出文件参与循环(默认为 1)。
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter      指定要使用的 Formatter 类的名称(默认为 java.util.logging.XMLFormatter )。 另外一个是:java.util.logging.SimpleFormatter 。XMLFormatter是以xml样式输出,SimpleFormatter是以普通样式输出。
java.util.logging.FileHandler.append 指定是否应该将 FileHandler 追加到任何现有文件上(默认为 false)。

以下是我在类中实现日志输出的一个例子

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;

/**
 * 日志输出到登陆系统用户所在的根目录的邮政储蓄日志的文件夹下,
 * 并且根据系统日期命名日志文件
 * @author wang
 *
 */
public class LoggerUtil {
   
    /** 存放的文件夹 **/
    private static String file_name = "400电话 系统日志";
   
    /**
     * 得到要记录的日志的路径及文件名称
     * @return
     */
    private static String getLogName() {
        StringBuffer logPath = new StringBuffer();
        logPath.append(System.getProperty("user.home"));
        logPath.append("\\"+file_name);
        File file = new File(logPath.toString());
        if (!file.exists())
            file.mkdir();
       
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        logPath.append("\\"+sdf.format(new Date())+".log");
       
        return logPath.toString();
    }
   
    /**
     * 配置Logger对象输出日志文件路径
     * @param logger
     * @throws SecurityException
     * @throws IOException
     */
    public static void setLogingProperties(Logger logger) throws SecurityException, IOException {
        setLogingProperties(logger,Level.ALL);
    }
   
    /**
     * 配置Logger对象输出日志文件路径
     * @param logger
     * @param level 在日志文件中输出level级别以上的信息
     * @throws SecurityException
     * @throws IOException
     */
    public static void setLogingProperties(Logger logger,Level level) {
        FileHandler fh;
        try {
            fh = new FileHandler(getLogName(),true);
            logger.addHandler(fh);//日志输出文件
            //logger.setLevel(level);
            fh.setFormatter(new SimpleFormatter());//输出格式
            //logger.addHandler(new ConsoleHandler());//输出到控制台
        } catch (SecurityException e) {
            logger.log(Level.SEVERE, "安全性错误", e);
        } catch (IOException e) {
            logger.log(Level.SEVERE,"读取文件日志错误", e);
        }
    }
   
    public static void main(String [] args) {
        Logger logger = Logger.getLogger("sgg");
        try {
            LoggerUtil.setLogingProperties(logger);
            logger.log(Level.INFO, "http://www.my400800.cn ");
            logger.log(Level.INFO, "400电话 ");
            logger.log(Level.INFO, "http://www.baidu.com");
            logger.log(Level.INFO, "百度 ");
            logger.log(Level.INFO, "http://www.google.com.hk");

            logger.log(Level.INFO, "谷歌 ");
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
    }
}


注意:Logger logger = Logger.getLogger("sgg");  sgg只能出现一次,否则回重复输出值

分享到:
评论

相关推荐

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

    在Swing应用中,我们同样可以使用Java内置的`java.util.logging`包来输出错误日志。这篇文档主要讨论了如何在Java Swing应用中使用`Logger`来生成和管理错误日志。 `Logger`是Java的日志记录工具,它提供了多种级别...

    product_swing_java自带log使用_swing皮肤定义_java_

    本文将深入探讨如何在Swing应用中使用Java自带的日志系统(logging API)以及如何自定义Swing界面的皮肤。 一、Java自带日志(logging API)的使用 Java内置的日志API提供了一种灵活且可配置的方式来记录应用程序...

    Swing 目录删除

    3. **日志记录**:在Java中,我们可以使用内置的java.util.logging.Logger类来记录日志信息。创建一个Logger实例,然后使用`log()`方法记录删除操作的细节,如删除的文件名、成功/失败信息等。 4. **统计信息**:在...

    Java实现spooling假脱机技术

    `java.util.logging.Logger`可以用来记录这些信息。 7. 性能优化: 使用Java的并发库,如`java.util.concurrent`包中的工具,可以帮助优化系统性能,如使用`Semaphore`来限制并发打印任务的数量,避免打印机过载。...

    java基于TCP的简单聊天室

    10. **日志记录**:为了调试和监控,聊天室应用通常会记录运行过程中的重要事件,Java的`java.util.logging.Logger`类提供了一种方便的日志记录机制。 以上是基于Java TCP的简单聊天室设计和实现的一些关键知识点,...

    Java_chatting.rar_JAVA聊天室 实现_java 聊天_java 聊天室_java_chatting.r_ja

    `try-catch-finally`语句块用于捕获和处理异常,而`java.util.logging.Logger`类则用于记录程序运行过程中的事件和错误。 10. **并发控制**:在多用户环境中,同步机制(如`synchronized`关键字或`java.util....

    java模拟cmd控制台 java教学小程序

    9. **日志记录**:为了调试和追踪问题,可以添加日志记录功能,使用`java.util.logging.Logger`或第三方库如Log4j。 10. **测试**:编写单元测试以确保每个命令的正确性,可以使用JUnit或其他测试框架。 以上就是...

    java聊天系统代码

    5. **用户界面(UI)设计**:聊天系统的用户界面通常使用Java Swing或JavaFX库创建。这涉及到组件布局、事件监听以及用户交互逻辑的设计。 6. **数据结构与算法**:为了存储和管理在线用户、聊天记录等信息,可能...

    歌曲下载,用java写的哦

    8. **日志记录**:为了跟踪程序运行情况和错误,可以使用`java.util.logging.Logger`记录信息。这可以帮助调试和优化程序。 9. **命令行参数**:对于简单的应用程序,你可能希望从命令行接收参数,如歌曲链接。Java...

    java实现ftp自动上传文件

    至于命令行信息,虽然描述中提到,但Java程序通常不直接处理命令行信息,而是通过控制台输出或者日志记录来呈现。如果需要在命令行界面显示FTP上传的进度,可以考虑在`logInfo`方法中添加输出,并在命令行运行Java...

    Java聊天软件

    Java的`try-catch`语句用于捕获和处理异常,而`java.util.logging.Logger`则用于记录程序运行中的信息。 以上是Java聊天软件开发中的核心概念和技术。ChatExample2(实现公聊和在线用户管理)可能是这个项目的一个...

    Java基础实现秒杀商品.rar

    使用`try-catch-finally`块处理异常,并通过`Logger`记录重要操作和错误信息。 总之,这个项目涵盖了Java基础的多个方面,从多线程到网络编程,再到数据库操作和数据结构的运用,对提升Java程序员的技能有着重要的...

    Java做的小型的仿QQ聊天工具

    Java的Exception类和java.util.logging.Logger可以用来捕获和记录错误信息,便于调试和维护。 通过参与这个小型的仿QQ聊天工具项目,开发者不仅可以巩固Java编程技能,还能深入理解网络编程、多线程、GUI设计等多个...

    NewQQ.rar_java 聊天_传送文件_聊天

    为了便于调试和问题排查,项目可能使用了日志记录工具,如Log4j或Java内置的 `java.util.logging.Logger`,将操作过程和错误信息记录下来。 9. **文本协议**: 考虑到聊天消息和文件传输指令的交换,项目可能定义...

    JAVA聊天室设计与实现

    10. **错误处理和日志记录**:良好的错误处理机制和日志记录是任何系统不可或缺的部分。JAVA的`try-catch-finally`语句用于捕获和处理异常,`java.util.logging.Logger`或第三方库如Log4j用于记录程序运行状态,便于...

    Java网络聊天应用完整源代码

    Java的`java.util.logging.Logger`类可以用于记录程序运行过程中的事件。 9. **网络协议**:虽然Java不直接支持特定的网络协议,但开发者可以使用`java.net`包中的类实现TCP/IP、UDP等协议。在聊天应用中,可能会...

    Java聊天室程序(java)130226.zip

    7. **日志记录**:为了调试和监控,程序可能会包含日志记录功能,例如使用`java.util.logging.Logger`类。 8. **异常处理**:良好的异常处理能提高程序的健壮性,避免因网络问题或其他异常情况导致程序崩溃。 9. *...

    java编写的聊天室

    7. **日志记录**:为了调试和追踪问题,聊天室可能包含日志记录功能,使用如java.util.logging.Logger或者第三方库如log4j。 8. **错误处理**:良好的错误处理是任何应用程序的关键部分,Java的try-catch-finally...

    snake_java_Snake!_roar63o_

    - 日志记录可能使用了如`java.util.logging.Logger`类,用于记录游戏过程中的关键事件和错误信息。 6. **代码组织与模块化** - 为了保持代码的清晰和可维护性,项目可能会遵循一定的设计模式,如MVC(Model-View-...

Global site tag (gtag.js) - Google Analytics