`
huiqinbo
  • 浏览: 335092 次
  • 性别: 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 【回钦波】

分享到:
评论

相关推荐

    常用日志控件的一个实例

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

    Log4j日志体系结构

    我们在写日志的时候首先要获取logger,在每一个使用log4j的项目都有很多个地方要获取logger,这些logger是真实的被实例化的Logger对象,他们有可能被分散在无数不同的类中,日志体系结构讲的是这些logger对象是如何...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    ssm(spring+spring mvc+mybatis)高仿小米电子商城项目实例

    日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 2.2、fastjson 1.2.20 前端技术 JS框架:Jquery 表格插件:Bootstrap Table 表单验证插件:BootstrapValidator 日期选择插件:Datepicker for ...

    微信小程序实例-商场系统、前后端免费开源.zip

    日志管理:SLF4J 1.7、Log4j JS框架:Vue 2.5.1,iview,layer 3.0.3,jquery 2.2.4,jqgrid 5.1.1 CSS框架:Twitter bootstrap3.3.7。 富文本:froala_editor1.2.2 2 开发环境 建议开发者使用以下环境,这样避免...

    JMeter操作手册大全.docx

    jmeter.log:Jmeter运行日志文件 jmeter.properties:Jmeter配置文件 jmeter-server.bat:windows下启动负载生成器服务文件 jmeter-server:Linux下启动负载生成器文件 /docs目录——Jmeter帮助文档 /extras目录——...

    新版Android开发教程.rar

    o JDK 5 or JDK 6 (JRE alone is not sufficient) o Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows o Not Not Not Not compatible with Gnu Compiler for Java (gcj) Note: Note: Note: ...

    企业快信项目

    注意:在运行本实例时,需要使用短信猫,如果是北京人大金仓信息技术有限公司生产的串口短信猫(DG-C1A)则需要将短信猫提供的动态库文件BestMail.dll拷贝到JDK安装路径下的jre\bin文件夹中。 使用说明 系统介绍 ...

    ant1.9资源

    该任务的作用是根据日志或监控器的级别输出信息。它包括message、file、append和level四个属性,举例如下: ,Amigo" file="logs/system.log" append="true"> 四. 利用Ant构建和部署Java工程 Ant可以代替使用...

Global site tag (gtag.js) - Google Analytics