zoukankan      html  css  js  c++  java
  • 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)

    前言:

    本章介绍自己写的基于java.util.logging的轻量级日志记录库(baseLog)。

    该版本的日志记录库犹如其名,baseLog,是个实现日志记录基本功能的小库,适合小型项目使用,方便快捷,简单实用,没有使用缓冲区,日志写出操作都是同步操作

    很早就想过要写两个日志记录器,一个用于大项目(logGuide),解决多线程模型下的日志记录并发性能问题;一个是基于Java的logging库写的简单同步日志记录,适合小项目,简单、便捷。

    之前写过一个logGuide,该日志记录系统没有使用任何第三方库,也没有使用Java自带的logging库,并且首次使用了缓冲区来解决由于日志数量过大导致的项目死锁问题,后来使用了logback,觉得现在的日志记录框架已经很全面了,所以不再继续写下去了。



    一、实现功能

    1、基于java.util.logging

    2、四种不同等级的日志记录

    3、单线程下不需要使用当前类的class作为初始化参数,用以提高性能

    4、线程池模型下必须使用当前类的class作为初始化参数(与其他日志记录框架相同)以此来保证日志记录中的正确的方法堆栈轨迹

    5、基于properties的简单配置

    6、配置支持控制是否开启控制台、文件的日志输出以及日期输出格式

    7、可设置自定义等级的日志输出到文件、控制台


    二、配置日志记录

    配置文件名必须为:logconf.properties

    #日志名称
    logName=测试
    #是否开启日志
    log=true
    #日志记录等级
    logLevel=all
    #是否在控制台显示消息
    consoleLog=true
    #控制台显示的日志级别(显示全部)
    consoleLogLevel=all
    #是否开启日志文件
    fileLog=true
    #日志文件记录等级(全部)
    fileLogLevel=all
    #日志文件路径
    filelogPath=log.log
    #是否接着上次的文件继续写出日志消息
    fileAppend=true
    #日期格式
    dateFormat=yyyy-MM-dd HH:mm:ss


    三、日志的使用

    可以使用两种方式初始化

    Logger log=BaseLogger.getLogger();
    Logger log2=BaseLogger.getLogger(LogTest.class);

    不同等级的日志可以调用专用的记录方法也可以调用log()方法来记录不同等级的日志

    日志记录器通用接口:

    public void debug(String msg);
    public void warn(String msg);
    public void err(String msg);
    public void info(String msg);
    public void log(String level, String msg);
    public void debug(String msg, Throwable thrown);
    public void warn(String msg, Throwable thrown);
    public void err(String msg, Throwable thrown);
    public void info(String msg, Throwable thrown);
    public void log(String level, String msg, Throwable thrown);
    public void debug(String className, String methodName,String msg);
    public void warn(String className, String methodName,String msg);
    public void err(String className, String methodName,String msg);
    public void info(String className, String methodName,String msg);
    public void log(String className, String methodName,String level, String msg);
    public void debug(String className, String methodName,String msg, Throwable thrown);
    public void warn(String className, String methodName,String msg, Throwable thrown);
    public void err(String className, String methodName,String msg, Throwable thrown);
    public void info(String className, String methodName,String msg, Throwable thrown);


    四、项目地址及下载地址

    github:稍后

    下载地址:http://download.csdn.net/detail/eguid_1/9808783


  • 相关阅读:
    【转载】ZendFrameWork application.ini配置
    【转载】从魔兽看PHP设计模式
    SVN 中tag branch trunk的用法
    work04
    今天的收获
    work03
    work02
    C# winform 获取当前路径
    使用Silverlight3中的DataPager实现服务器端分页
    应用系统架构设计
  • 原文地址:https://www.cnblogs.com/eguid/p/6821561.html
Copyright © 2011-2022 走看看