java中Logger.getLogger(Test.class)

log4的使用方法: 
log4是具有日志记录功能,主要通过一个配置文件来对程序进行监测
有两种配置方式:一种程序配置,一种文件配置
有三个主要单元要了解,Logger,appender,layout.

logger是进行记录的主要类,appender是记录的方式,layout是记录的格式
logger七种日志级别:debug,info,warn,error,fatal,all,off
最常用的应该是debug()和info();而warn()、error()、fatal()仅在相应事件发生后才使用

appender主要分三类,终端输出,文件输出,流输出
ConsoleAppender
FileAppender
WriterAppender

layout也分三类:简单格式,html格式,匹配格式
SimpleLayout
HTMLLayout
PatternLayout

输出简写:(用在PatternLayout)
%m 输出代码中指定的消息
%p 输出优先级
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。一般使用了它就不需使用%c了

[按照下面步骤来写吧!就可以得到我们所想要的日志文件哦!]

[按照顺序就可以将日志文件读出来了!]
作用实例:
程序配置一般过程:
1.得到特定名称的logger
2.得到其中一个layout
3.根据layout得到appender
4.logger添加appender
5.logger设置级别
6.logger输出有级别的日志信息

程序:
Logger logger = Logger.getLogger(Test.class.getName())     //取得logger
SimpleLayout simpleLayut = new SimpleLayout()              //取得layout
FileAppender fa = new FileAppender(simpleLayout,"test.log") //取得ppender
logger.addAppender(fa)                                     //添加appender
logger.set((Level)Level.DEBUG)                             //设置级别
logger.debug("hihihihih")                                  //记录信息

文件配置过程:
1.得到特定名称的logger
2.加载配置文件      (配置文件做了2-5的工作)
3.logger输出有级别的日志信息

文件配置程序:
1.Logger logger = Logger.getLogger(Test.class.getName())     //取得logger
2.使用下面的配置加载
3.输出信息

文件配置分properties,xml
读取properties:
PropertyConfigurator.configure("logTest.properties");

读取xml:
DOMConfigurator.configure("src/logTest.xml");

告别System.out.print()—J2SDK1.4新增Java日志框架 (一)

作为一名Java 程序员,最熟悉的、使用最多的调用恐怕莫过于System.out.print(“…”)。当你没有调试工具而要跟踪一个变量的值得时候;当你需要显示捕获的Exception、Error的时候;当你想知道程序在运行的时候究竟发生了什么的时候,通常的做法就是调用System.out.print把他们在终端、控制台上打印出来。这种方式对于输出信息的分类、格式化及永久保存带来诸多不便。虽然我们可以把它写入一个文件然后进行分析,但是这要需要编写额外的程序代码,其成本不可忽视!而由此给目标系统本身增加的复杂程度不可避免的使开发、调试陷入一个深深的迷潭。
[要知道一点:如果说能不写的代码最好不要写!]

JDK1.4的推出,使得这一切即将成为历史。让我们向System.out.print()告别吧,使用Java Logging API为自己的程序构建一个完整的日志记录系统! 
  
一、第一个实例
   先看一个简单的实例:SimpleLoggingTest.java
1  import java.util.logging.*;
2 public class SimpleLoggingTest { 
3     public static void main(String args[]) {
4          //程序的其它处理 
5          //使用Logger的静态方法获得一个匿名          //Logger
6          Logger logger1 = Logger.getAnonymousLogger();
7          //记录消息 
8          logger1.log(Level.INFO,"第一条日志记录");
9          //程序的其它处理 
10      }
11 } 
  
              实例1 
  
注意:编译、执行该程序需要JDK1.4及以上版本的支持。 
运行该程序,可以在控制台看到程序运行结果: 
  
2003-1-14 15:09:40 SimpleLoggingTest main 
信息: 第一条日志记录 
首先,程序引用java.util.Logging包(第1行)。接着,在适当的时候获得一个Logger(记录器)类的实例(第6行,获取一个匿名的Logger)。最后,在程序需要记录信息的地方调用Logger类的log方法进行记录(第8行,记录一个INFO级别的消息)。 
  
  
  
二、Java Logging API 
  
   Java Logging API封装在JDK1.4.0的java.util.Logging 包中。它通过产生便于最终用户、系统管理员、故障维护工程师以及软件开发团队(工程师)进行分析的日志记录为软件的开发调试和维护提供便利的手段。它捕获操作系统平台和执行程序的安全故障、配置错误、执行瓶颈和(或)Bug等数据信息,以纯文本、XML或程序员自定的某种方式将其格式化成日志记录,然后传递给内存、系统输出流、控制台、文件、Sockets等多种系统资源进行缓存和输出。
  
(一)、该软件包中的关键类。
  
n        Logger:  应用程序进行日志记录调用的主要实体。 Logger对象用于记录特定系统或应用程序的消息。 
n        LogRecord:  用于在日志框架和单个记录处理程序之间传递记录请求。 
n        Handler:  日志数据的最终输出处理器。它将LogRecord对象导出到各种目标,包括内存、输出流、控制台、文件和套接字。多种Handler子类可供用于这种用途。
  
                            图一 
  
n        Level:  定义一组标准的记录级别,可用于控制记录的输出。可以把程序配置为只输出某些级别的记录,而忽略其他级别的输出。 
n        Filter:  精细过滤、控制记录的内容,比记录级别所提供的控制准确得多。记录API支持通用的过滤器机制,这种机制允许应用程序代码添加任意过滤器以便控制记录的输出。
n        Formatter:  为LogRecord对象的格式化提供支持。 
  
               图二 
  
n        LogManager: Java Logging框架中唯一的、全局的对象,用于维护与Logger记录器及日志服务的一系列共享的数据结构及状态。它负责整个日志框架的初始化、维护一组全局性的Handle对象、维护一个树形结构的Logger的名字空间、诊测日志框架配置文件的改变从而重新读入并应用相关的参数以及负责程序停止运行时整个日志框架的清理工作。 
  
(二)Logger 
  
1、Logger的命名空间
  
在SimpleLoggingTest.java实例中,我们使用了一个匿名的(没有命名的)Logger对象。在Java Logging 框架中,Logger是可以命名的。Logger的名字空间与java类的名字空间相同的结构相同:使用“.”间隔的字符串。Logger的名字空间体现了Logger的层次结构。例如:命名为“a.b”的Logger是命名为“a.b.c”的“父”(上一级)Logger记录器。Logger的命名可以是任意的字符串,一般情况下,使用包或类的名字为Logger 进行命名。
  
Logger的名字空间由全局单列类LogManager的实例进行创建、维护。
[貌似在处理数据库的时候的DriverManage来管理数据库驱动一样了!]

匿名Logger不被存储在命名空间中。 
  
2、创建Logger实例
  
Logger对象可以通过调用工厂方法getLogger或getAnonymousLogger获取。 
  
//获取一个名为“A”的Logger对象 
  
Logger loggerA= Logger.getLogger(“A”); 
  
// 获取一个名

为“A.B”的Logger对象,其上级记录器为loggerA。 
  
Logger loggerAB= Logger.getLogger(“A.B”); 
  
//获取一个匿名Logger对象 
  
Logger loggerTmp = Logger.getAnonymousLogger(); 
  
  
对非匿名Logger,getLogger先在命名空间中查找同名的Logger对象,如果有,则返回该Logger对象;如果不存在,则在命名空间中创建注册一个新的Logger对象,并与其上级Logger对象相关联。

匿名Logger对象属于创建它的对象的私有对象,只能由创建它的对象使用,记录一些临时性的日志信息。而命名Logger对象使全局性的,在日志框架的生存期内,除了创建它的对象外还,可由其它对象用于记录日志信息。

匿名的Logger对象由一个全局的的root Logger “” 对象(root Logger的名字为空)。这意味着所有匿名Logger对象将从root Logger “”中继承行为。

匿名Logger对象通常用于java Applet应用中。它去掉了在运行过程中的一班性的安全检查,允许其创建类对象对Logger的控制、状态信息进行修改,如:setLevel设置Logger的日志消息记录级别;addHandle增加Logger的Handle(处理器)对象等。

一个Logger对象可以拥有有零个到多个Handler实例。当没有Handler时,如不禁止日志记录沿名字空间向上传递,那该Logger对象的日志消息记录将有其拥有Handler实例的上级Logger进行处理。当一个Logger对象拥有多个 Handler实例对象时,其记录的日志数据将被所有的Handler逐一进行处理。

sprongboot使用的默认日志框架是Logback。

可以在application.properties配置简单日志属性,也可以单独配置logback.xml格式,还可以使用log4j来管理。

下面分别介绍自带的日志配置以及如何使用log4j来作为日志管理。

1 .自带日志管理配置:

1.1 修改application.properties

#配置日志
logging.level.root=INFO
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
#logging.path=D:\\demo1
logging.file=d:\\springboot3\\log\\demo2.log

这种简单粗暴方便

2.使用log4j管理

2.1 修改pom.xml文件,过滤掉自带的spring-boot-starter-logging,然后添加spring-boot-starter-log4j依赖包。

    <!-- log4j --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency>    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j</artifactId><version>1.3.8.RELEASE</version></dependency>

2.2 在resources目录下新建log4j.properties配置文件

配置info,error,console,debug四种输出格式。

log4j.rootLogger=info,error,CONSOLE,DEBUG
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = info
log4j.appender.info.append=true
log4j.appender.info.File=d://springboot3/logs/api_services_info.log
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = error
log4j.appender.error.append=true
log4j.appender.error.File=d://springboot3/logs/error/api_services_error.log
log4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd
log4j.appender.DEBUG.Threshold = DEBUG
log4j.appender.DEBUG.append=true
log4j.appender.DEBUG.File=d://springboot3/logs/debug/api_services_debug.log

3. 在使用到的类中声明log以及输出log信息。

输出结果如下:

springboot日志管理+集成log4j相关推荐

  1. Springboot [日志管理LogBack]

    Spring Boot的日志详解 日志框架的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前分为下面下个模块: logb ...

  2. Springboot 日志管理模块编写记录

    /**配置类 **/@Component @Order(value=1) public class MyApplicationRunner implements ApplicationRunner{ ...

  3. java常用日志框架日志门面及实现 SLF4J 、Jboss-logging 、JCL、Log4j、Logback、Log4j2、JUL,springboot集成 log4j、log4j2

    java常用日志框架日志门面SLF4J .Jboss-logging .JCL.Log4j及实现 Logback.Log4j2.JUL,springboot集成 log4j.log4j2 .logba ...

  4. java kettle 日志 log_kettle使用log4j管理输出日志

    标签: 在使用kettle进行数据分析和清洗时日志非常多而且杂乱,使用原有的日志有时找不到异常的位置,有时日志不够详细,说简单一点就是日志不是我们想要的.因而对kettle日志进行相应的管理就想得尤为 ...

  5. spring、springboot集成 log4j日志、log4j2日志以及slf4j

    1.查看pringboot自带的日志框架 新建一个springboot 工程,查看依赖树 通过查看依赖树可以发现,springboot自带被loggong管理的log4j .logback等日志相关的 ...

  6. SpringBoot中使用log4j进行日志管理

    场景 SpringBoot项目中使用log4j进行日志管理. 实现 1.因为SpringBoot默认是使用logback,所以要修改pom.xml 过滤掉自带的spring-boot-starter- ...

  7. Spring Boot 入门(五):集成 AOP 进行日志管理

    本篇文章是接着 Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理写的,按照前面几篇博客的教程,可以搭建一个简单的项目,主要包含了 Pagehelper+MyBatis 分页 ...

  8. 【SpringBoot】 logback 日志的集成

    logback 日志的集成 logback.xml 配置文件 具体类中使用日志 使用默认日志配置 SpringBoot 核心知识点整理! Logback 是由 log4j 创始人设计的又一个开源日志组 ...

  9. 超简单的Springboot中的日志管理配置

    本案例中可以了解,怎么配置日志的输出路径,输出格式(比如说zip格式),按日期进行划分(今天的日志输出为一个文件,明天的日志输出到另一个文件),在按日期划分的同时又按文件大小划分(比如说每天的日志记录 ...

最新文章

  1. 每天一个linux命令(28):tar命令
  2. acwing算法题--铁路与公路
  3. 干货 | 算法工程师入门第二期——穆黎森讲增强学习(一)
  4. Python下tornado实现webSocket实现
  5. go语言的计数器iota
  6. bigdecimal 保留两位小数_openpyxl修改单元格格式(隐藏小数、设定百分数位数)...
  7. 进程在linux系统中原理,Linux系统原理知识 进程切换的概念介绍
  8. Python+numpy实现矩阵QR分解
  9. Mysql学习总结(15)——Mysql错误码大全
  10. 【干货】华为-智能世界2030:构建万物互联的智能世界
  11. C语言程序设计C语言之父,C语言程序设计(C语言之父着).pdf
  12. vue cil安装axios
  13. 深度操作系统20.2.2 发布(国产系统也可以安装安卓应用了)
  14. 对焦(调焦),变焦区别
  15. The specified target project directory 项目名\src\main\resources does not exist 问题解决
  16. Mac电脑鼠标滚轮方向相反的解决办法
  17. 超级爆笑学生作文大全
  18. Spark 3.0 - 6.ML 自定义 Transformer 踩坑大全
  19. 页码数字统计问题(数字统计问题)
  20. Navicat Premium 16 隆重登场

热门文章

  1. 长亭科技 Go 后端开发实习生一面面经
  2. 粉笔5.8课程——资料分析
  3. python怎么输入对数函数_python中对数函数怎么表示
  4. Windows部署Docker
  5. ②【Java 组】蓝桥杯省赛真题解析 [振兴中华] [三部排序] 持续更新中...
  6. dos命令chkdsk_什么是带有示例的Chkdsk / R命令?
  7. android 文字Flash特效
  8. English语法_方式副词 - almost / nearly
  9. 找零钱最佳组合的测试用例
  10. 《奋斗》第二季 陆涛和米莱结婚啦……