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

jdk log日志输出经典实例【回钦波】

阅读更多

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   为生成的输出文件名称指定一个模式。
 这里我(回钦波)设定的为C:/huiqinbo.com%u.log    那就在C盘下去找huiqinbo.com0.txt文件就可以了。

模式由包括以下特殊组件的字符串组成,则运行时要替换这些组件:
"/" 本地路径名分隔符 "%t" 系统临时目录 "%h" "user.home" 系统属性的值 "%g" 区分循环日志的生成号 "%u" 解决冲突的惟一号码 "%%" 转换为单个百分数符号"%" 
如果未指定 "%g" 字段,并且文件计数大于 1,那么生成号将被添加到所生成文件名末尾的小数点后面。

java.util.logging.FileHandler.limit = 50000   限制文件的大小,www.linuxidc.com以字节为单位
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 = "回钦波个人主页日志";
   
    /**
     * 得到要记录的日志的路径及文件名称
     * @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, "huiqinbo.com");
            logger.log(Level.INFO, "andy");
            logger.log(Level.INFO, "欢迎来访");
            logger.log(Level.INFO, "gggggg");
            logger.log(Level.INFO, "hhhhhh");
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
    }
}

 

 

更多交流、更多了解 QQ:444084929 【回钦波】

分享到:
评论

相关推荐

    对JDK log日志的扩展

    5. **使用第三方日志库**:虽然JDK的日志框架能满足基本需求,但功能更强大且被广泛使用的日志库如Log4j、Logback和SLF4J提供了更多的灵活性和性能优化。通过桥接器(如Log4j的JDK14LoggerAdapter或SLF4J的...

    采用jdk实现的日志框架

    "采用JDK实现的日志框架"是一个基于Java Development Kit(JDK)1.4中的`java.util.logging`包构建的日志系统,它旨在提供与流行的Log4j框架类似的灵活性和功能。 `java.util.logging`是Java平台的标准日志API,自...

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

    在代码中,我们可以创建`FileHandler`并将其添加到`Logger`实例,以实现自定义的日志输出。下面是一个示例,展示了如何根据当前日期创建日志文件: ```java import java.io.File; import java.io.IOException; ...

    JDK自带的日志包简单应用

    `MySimpleFormatter.java`可能定义了一个简单的日志格式化器,继承自`java.util.logging.Formatter`,并覆盖`format(LogRecord)`方法,以自定义日志输出的样式。默认的`SimpleFormatter`会输出一条简洁的消息,但...

    log日志组件总结

    本文将深入探讨Java中的log日志组件,包括JDK内置的日志(jdkLog)、Apache的Commons Logging(commonLog)以及流行的log4j。了解这些组件的特点和用法,将提升你对Java日志处理的理解。 首先,我们来看看JDK内置的...

    Flume-ng在windows环境搭建并测试+log4j日志通过Flume输出到HDFS.docx

    Flume-ng 在 Windows 环境搭建并测试 + Log4j 日志通过 Flume 输出到 HDFS Flume-ng 是一个高可用、可靠、分布式的日志聚合系统,可以实时地从各种数据源(如日志文件、网络 socket、数据库等)中收集数据,并将其...

    常用日志控件的一个实例

    1:JDKLogTest.java JDK自带的日志控件,相对... commons-logging控件不是日志控件,没有日志功能,他只是统一了JDK Logging与Log4的API,并且将日志功能交给JDK Logging或Log4,对于不能确定日志方式的系统,建议使用。

    Java Log4j使用详解

    本篇文章旨在详细介绍如何在Java中使用Log4j来管理日志,包括其配置方法以及与其他日志框架(如Commons Logging和JDK自带Logger)的对比。 #### 二、Jakarta Commons Logging (JCL) ##### 2.1 概述 Jakarta ...

    简单建立数据库连接池及JDK自带日志使用(真正)

    使用JDK日志,我们需要先配置日志处理器,然后创建`Logger`实例,最后调用相应的方法记录日志。以下是一个简单的示例: 1. **配置日志处理器**:在`logging.properties`文件中配置日志级别、输出目的地等。例如,将...

    springmvc5+hibernate5+junit4+log4j2整合实例

    在本整合实例中,我们将探讨如何将Spring MVC 5、Hibernate 5、JUnit 4 和 Log4j2 集成在一起,以构建一个高效、可测试和日志记录完善的Java Web应用程序。以下是对这些技术及其整合过程的详细说明: **Spring MVC ...

    graylog日志检索系统调研.docx

    Graylog 是一个强大的开源日志管理系统,用于收集、索引和分析来自各种来源的日志数据。它提供了一个直观的Web界面,使得用户可以方便地搜索、监控和分析大量日志数据。Graylog 通过集成Elasticsearch进行数据存储和...

    java日志操作之Log4j

    Log4j的设计理念是灵活与高效,它允许开发者轻松地配置日志输出的位置、格式以及级别。 #### 日志的重要作用 在软件开发过程中,日志起着至关重要的作用。通过合理地利用日志,可以达到以下几个目的: 1. **监控...

    搭建log4j日志环境.pdf

    在这个例子中,我们创建了一个名为`TestSlf4j`的类,使用`LoggerFactory.getLogger()`方法获取一个logger实例,然后在`testLog`方法中调用`log.info()`记录日志信息。 接下来,我们将演示如何通过SLF4J切换不同的...

    java中LOG4J学习资料

    与JDK的日志包相比,Log4j更适合处理复杂日志需求,尤其是在需要灵活调整日志输出策略的情况下。通过熟练掌握Log4j,开发者可以更有效地管理和利用应用程序的日志信息,提高开发效率和问题解决速度。

    JDK Logger 简介

    除了代码配置,JDK Logger还支持通过`logging.properties`配置文件进行更复杂的设置,如Handler的类型、日志级别、输出格式等。 ### 扩展性 虽然JDK Logger在简单场景下已经足够使用,但在大型项目中,可能需要更...

    slf4j+log4j所需jar包(三个1.6版本)

    Log4j则是Apache组织的一个经典日志记录工具,提供了丰富的日志级别、灵活的日志配置以及多种输出格式。 在这个"slf4j+log4j所需jar包(三个1.6版本)"中,我们有三个不同版本的1.6系列jar包,这可能包括SLF4J API...

    log4j-1.2.16

    开发者通过创建Logger实例来发送日志消息。每个Logger都有一个名称,可以根据名称来控制日志级别,实现不同模块的日志级别独立配置。 2. **Level**:Log4j定义了多个日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL...

    log4j使用方法及简单配置

    它的自动选择机制可以根据环境找到最适合的日志实现,如果没有配置,会按顺序尝试Log4j、JDK内置日志、SimpleLog等。只需将Log4j的库添加到classpath,就能实现commons-logging与Log4j的整合。 在代码中,使用Log4j...

Global site tag (gtag.js) - Google Analytics