zoukankan      html  css  js  c++  java
  • Java 自带的Log功能

    经常只是使用log4,没有对java的log进行深入研究,趁着今日整理source的机会,把java log这方面整理一下。

    1.Java默认的log使用

    找到位于jre/lib下的logging.properties

    ############################################################
    #      Default Logging Configuration File
    #
    # You can use a different file by specifying a filename
    # with the java.util.logging.config.file system property. 
    # For example java -Djava.util.logging.config.file=myfile
    ############################################################

    ############################################################
    #      Global properties
    ############################################################

    # "handlers" specifies a comma separated list of log Handler
    # classes.  These handlers will be installed during VM startup.
    # Note that these classes must be on the system classpath.
    # By default we only configure a ConsoleHandler, which will only
    # show messages at the INFO and above levels.
    handlers= java.util.logging.ConsoleHandler

    # To also add the FileHandler, use the following line instead.
    #handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

    # Default global logging level.
    # This specifies which kinds of events are logged across
    # all loggers.  For any given facility this global level
    # can be overriden by a facility specific level
    # Note that the ConsoleHandler also has a separate level
    # setting to limit messages printed to the console.
    .level= INFO

    ############################################################
    # Handler specific properties.
    # Describes specific configuration info for Handlers.
    ############################################################

    # default file output is in user's home directory.
    #java.util.logging.FileHandler.pattern = %h/java%u.log

    java.util.logging.FileHandler.pattern = %h/%s.log//文件名字和路径,默认为用户的根目录
    java.util.logging.FileHandler.limit = 50000
    java.util.logging.FileHandler.count = 1
    java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

    # Limit the message that are printed on the console to INFO and above.
    java.util.logging.ConsoleHandler.level = INFO
    java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

    ############################################################
    # Facility specific properties.
    # Provides extra control for each logger.
    ############################################################

    # For example, set the com.xyz.foo logger to only log SEVERE
    # messages:
    com.xyz.foo.level = SEVERE

    测试:

    import java.io.IOException;
    import java.util.Locale;
    import java.util.logging.FileHandler;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import java.util.logging.SimpleFormatter;

    public class testMain {

        public static void main(String[] args) {
            try {

            // testGetPropertyUtil
            //testMain.testGetPropertyUtil();
                testMain.testLog();
            } catch (Exception e) {

                e.printStackTrace();
            }

        }

        public static void testLog() throws SecurityException, IOException {

            Logger loger =Logger.getLogger("test.Test");
            FileHandler fh = new FileHandler("c:/test.log",true);//方法返回日志文件存放的路径
            loger.addHandler(fh);
            loger.setLevel(Level.ALL);
            SimpleFormatter sf = new SimpleFormatter();
            fh.setFormatter(sf);
            loger.log(Level.INFO, "这是一个消息");
            loger.log(Level.WARNING, "这是一个警告");
            loger.log(Level.SEVERE, "这是一个服务器消息");

        }

    }

    运行后再控制台打印如下信息:

    2012-2-15 16:45:44 testMain testLog
    信息: 这是一个消息
    2012-2-15 16:45:44 testLog
    警告: 这是一个警告
    2012-2-15 16:45:44 testMain testLog
    严重: 这是一个服务器消息

    同时在生产c:/test.log文件,里面是同样的内容。

    2: 使用Jakarta Commons Logging(JCL)

       JCL是所有的Java日志提供一个统一的接口,开发人员可以自己实现该接口,或者调用Log4J,AvalonLogKit JDK1.4来实现。同时本身也提供一个简单的SimpleLog实现类。配置文件为commons-logging.properties

    在该配置文件中指定具体的实现类。比如,使用log4J的时候可以如下配置:

    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

    具体如何使用,google 百度可以找出一大堆。

  • 相关阅读:
    【C/C++】qsort函数的使用方法和细节
    MOOC C++笔记(五):继承
    MOOC 数据库系统笔记(二):数据库系统的基本结构及其演变发展
    PTA A1015
    MOOC 数据库系统笔记(一):初步认识数据库系统
    PTA A1014
    MOOC C++笔记(四):运算符重载
    PTA A1013
    PTA A1011&A1012
    1.1.22 同样的文档,行数不一样
  • 原文地址:https://www.cnblogs.com/IamThat/p/3079333.html
Copyright © 2011-2022 走看看