前言:

本章介绍自己写的基于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

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

  1. 深入分析Java的内置日志API(java.util.logging)(一)

    简介   任何的软件系统,日志都是非常重要的一部分.良好统一的日志规范会大大提高应用程序的可维护性.可靠性,并进而提高开发效率,指导业务.在早期,Java工程师往往都是利用 System.err.pr ...

  2. 通配置文件的方式控制java.util.logging.Logger日志输出

    转自:http://zochen.iteye.com/blog/616151 简单的实现了下利用JDK中类java.util.logging.Logger来记录日志.主要在于仿照log4j方式用配置文 ...

  3. Java日志组件1---Jdk自带Logger(java.util.logging.Logger)

    最近在看日志的一些东西,发现利用JDK自带的log也可以简单的实现日志的输出,将日志写入文件的过程记录如下: 1.新建LogUtil.Java( 里面写了几个静态方法,为log设置等级.添加log控制 ...

  4. java.util.logging的使用

    秉承着某种执念我今天决定不用Logback而是和Java的logging肛到底,现在总结一下研究成果: 日志等级 日志等级有七种,severe,warning,info,fine,finer,fine ...

  5. 为什么使用SLF4J比使用log4j或者java.util.logging更好

    1.SLF4j是什么? SLF4J 并没有真正地实现日志记录,它只是一个允许你使用任何java日志记录库的抽象适配层. 如果你正在编写内部或者外部使用的API或者应用库的话,如果使用了slf4j,那么 ...

  6. java.util.logging

    我们目前记录日志用的最多的就是Apache的log4j,其实java.util本身也提供日志记录功能,即java.util.logging,值得关注的就是它的等级与log4j的等级有所不同: 首先我们 ...

  7. Java日志工具之java.util.logging.Logger

    今天总结下JDK自带的日志工具Logger,虽然它一直默默无闻,但有时使用它却比较方便.更详细的信息可以查看JDK API手册,本文只是简单示例入门. 创建Logger 我们可以使用Logger的工厂 ...

  8. Java 原生日志 java.util.logging

    简介 Java 中的 Logging API 让 Java 应用可以记录不同级别的信息,它在debug过程中非常有用,如果系统因为各种各样的原因而崩溃,崩溃原因可以在日志中清晰地追溯,下面让我们来看看 ...

  9. Java程序日志:java.util.logging.Logger类

    一.Logger 的级别 比log4j的级别详细,全部定义在java.util.logging.Level里面.各级别按降序排列如下:SEVERE(最高值)WARNINGINFOCONFIGFINEF ...

随机推荐

  1. jsp实现仿QQ空间新建多个相册名称,向相册中添加照片

    工具:Eclipse,Oracle,smartupload.jar:语言:jsp,Java:数据存储:Oracle. 实现功能介绍: 主要是新建相册,可以建多个相册,在相册中添加多张照片,删除照片,删 ...

  2. 随应潮流-基于ABP+Angulsrjs现代化应用软件开发框架(2)-abp说明

    前言 上周未发布完<基于ABP+Angulsrjs现代化应用软件开发框架(1)-总体介绍> 文章后,好多朋友问了我一些ABP的问题,并且希望我开源我的项目源码,向朋友们说一下,我项目的源码 ...

  3. Java实现压缩文件与解压缩文件

    由于工作需要,需要将zip的压缩文件进行解压,经过调查发现,存在两个开源的工具包,一个是Apache的ant工具包,另一个就是Java api自带的工具包:但是Java自带的工具包存在问题:如果压缩或 ...

  4. npm install fetchmatedata慢的解决办法

    最近在开发webpack工程时,第一步npm install这里超级慢,一直停着,显示:"fetchMetadata: sill mapToRegistry uri https://regi ...

  5. java web 简单的登录注册

    --sql文件 create database studentgouse studentgocreate table stuinfo(--stuid int primary key identity( ...

  6. Spring Cloud 学习笔记(二)——Netflix

    4 Spring Cloud Netflix Spring Cloud 通过自动配置和绑定到Spring环境和其他Spring编程模型惯例,为Spring Boot应用程序提供Netflix OSS集 ...

  7. RocketMQ与Kafka对比

    转自:https://github.com/alibaba/RocketMQ/wiki/rmq_vs_kafka 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用MySQL作为消息存 ...

  8. Layout基本属性总结

    在Android中,共有五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),GridLayout(网格布局),RelativeLayout(相对布局),T ...

  9. OC中的copy

    copy的概念 Copy的字面意思是"复制"."拷贝",是一个产生副本的过程 对象拷贝的目的:要使用某个对象的数据,但是在修改对象的时候不影响原来的对象内容,常 ...

  10. 利用Sinopia搭建私有npm包

    1.安装sinopia包 npm install -g sinopia 如果是Windows系统用上面的方式安装sinopia很有可能报错,推荐使用下面方式安装: npm install sinopi ...