当前位置:首页>财经>正文

Log4j的使用和怎么在spring中集成log4j log4j.xml中spring配置怎么弄

2023-04-25 00:23:56 互联网 未知 财经

 Log4j的使用和怎么在spring中集成log4j log4j.xml中spring配置怎么弄

Log4j的使用和怎么在spring中集成log4j

简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就
  可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。
  Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。
  log4j使用方法
  下面介绍的是log4j一些理论方面的知识,读者觉得枯燥的话可以跳过本节直接阅读第三节实例部分。
  1、定义配置文件
  首先使用配置文件将使我们的应用程序更加灵活配置log日志输出方式包括输出优先级、输出目的地、输出格式。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:
  ①配置根Logger,其语法为:0
  log4j.rootLogger = [ level ] , appenderName, appenderName, …
  其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。

log4j.xml中spring配置怎么弄

比较基本的:
#rootLogger是所有日志的根日志,修改该日志属性将对所有日志起作用
#下面的属性配置中,所有日志的输出级别是info,输出源是console
log4j.rootLogger=info,console
#定义输出源的输入位置是控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
#定义输出日志的布局采用的类
log4j.appender.console.layout=org.apache.log4j.PatternLayout
#定义输出日志布局
log4j.appender.console.layout.ConversionPattern=%d%p[%c] - %m%n

spring batch怎么结合log4j

Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。有一个Logger称为Root,它永远 存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法获得,其它Logger通过 Logger.getLogger(String name)方法。
Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时存储到一个文件中。
Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息。
Log4j中将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR和FATAL,当输出时,只有级别高过配置中规定的 级别的信息才能真正的输出,这样就很方便的来配置不同情况下要输出的内容,而不需要更改代码,这点实在是方便啊。

3、Log4j的配置文件
虽然可以不用配置文件,而在程序中实现配置,但这种方法在如今的系统开发中显然是不可取的,能采用配置文件的地方一定一定要用配置文件。Log4j支持两 种格式的配置文件:XML格式和Java的property格式,本人更喜欢后者

springboot怎么设置日志

spring boot内部使用Commons Logging来记录日志,但也保留外部接口可以让一些日志框架来进行实现,例如Java Util Logging,Log4J2还有Logback。如果你想用某一种日志框架来进行实现的话,就必须先配置,默认情况下,spring boot使用Logback作为日志实现的框架。
1.配置控制台日志的debug级别
默认情况下,spring boot从控制台打印出来的日志级别只有ERROR, WARN 还有INFO,如果你想要打印debug级别的日志,可以通过application.properites配置debug=true
debug=true1

在生产环境环境下,你可以通过命令行进行配置日志的debug级别
java -jar C:UsersAdministratorDesktopxxdemo.jar --debug1

3.配置logging.level.*来具体输出哪些包的日志级别
logging.level.root=INFO
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR123

2.将日志输出到文件中
默认情况下spring boot是不将日志输出到日志文件中,但你可以通过在application.properites文件中配置logging.file文件名称和logging.path文件路径,将日志输出到文件中
logging.path=F:\demo
logging.file=demo.log
logging.level.root=info123

这里需要注意几点:
这里若不配置具体的包的日志级别,日志文件信息将为空
若只配置logging.path,那么将会在F:demo文件夹生成一个日志文件为spring.log
若只配置logging.file,那将会在项目的当前路径下生成一个demo.log日志文件
logging.path和logging.file同时配置,不会有在这个路径有F:demodemo.log日志生成,logging.path和logging.file不会进行叠加
logging.path和logging.file的value都可以是相对路径或者绝对路径
这就是基础的日志配置,可以直接在application.properties配置,我们还可以在classpath路径下,通过定义具体的日志文件来配置

springmvc怎么配置log4j2


增加pom配置,让maven加载log4j包
org.slf4j
slf4j-log4j12
1.7.2
修改web.xml,把log4j加到项目中
log4jConfigLocation
classpath:/log4j/log4j.xml

org.springframework.web.util.Log4jConfigListener
根据web.xml配置的路径,在src/main/resource目录下新建log4j/log4j.xml


经过上面的步骤后,log4j就配置好了,接下来是使用,在DemoController中使用,使用slf4j接口,代替log4j,这样假如以后不用log4j了,用logback等其它日志框架,只需修改配置文件,不需要修改java代码
package com.my1.controller
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.servlet.ModelAndView
@Controller
public class DemoController {
private static Logger logger = LoggerFactory.getLogger(DemoController.class)
@RequestMapping(value = "/toPage1.htm")
public ModelAndView toPage1() {
logger.debug("TEST")
return new ModelAndView("page1")
}
}

由于用了springmvc框架,日志配置好后,会输出很多spring日志,在log4j.xml中,增加一段配置,修改spring包的日志输出级别


log4j的自定义输出格式说明


log4j的输出方式说明

spring boot 怎么配置 filter

public User(String mima){//构造方法
super()
this.mima=mima
}
public String getMima() {//get,set方法
return mima
}
public void setMima(String mima) {
this.mima = mima
}