`
xly1981
  • 浏览: 147179 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

logBack用法,记录

    博客分类:
  • java
阅读更多
1. Logback使用手册
 系统中的日志采用 slf4j+logback实现
 引入记录日志模块
 Pom.xml文件中配置
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version> 1.0.13 </version>
</dependency>
    代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Logger log = LoggerFactory.getLogger(Clazz.class);
 logback.xml配置文件中
<root level=”INFO”>
<appender-ref=”STDOUT” />   在上生产系统时去掉。
<appender-ref=”allRolling” />
<appender-ref=”errorRolling” />
</root>
2. 程序中记录日志常用方法
 Logger.error(“the error code is {}”,”1111”);
其中{}是要替换的参数,在评估是否作记录后,仅当需要作记录时,logger 才会格式化消息,
值替换"{}"。换句话说,当记录语句被禁用时,这种方法不会产生参数构造所带来的性能消耗。
 Logger.error(“the error code is {}, the reason is{} the money is {}”,“1111”,”reason”,99.9);
此方法适合多个参数
 如需打印出异常堆栈信息
Logger.error(“the error code is {}, the reason is{} the money is {}”,“1111”,”reason”,99.9,e);
此方法适合多个参数并打印出异常信息
3. 日志输出效果

4. 日志的自定义扩展
如需定义act.biz业务日志类型
配置如下:
 Logger log = LoggerFactory.getLogger(“act.biz”);
 配置文件追加
<logger name=" act.biz " level="INFO" >
  <appender-ref ref="actbizRolling"/>
  </logger>

<appender name=" actbizRolling"  class="ch.qos.logback.core.rolling.RollingFileAppender">
   <file>${LOG_HOME_SERVICE}/paff-${bySecond}.txt</file>
   <rollingPolicy  class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  <fileNamePattern>${LOG_HOME_SERVICE}/paff-%d{yyyy-MM-dd_HH-mm}.%i.zip</fileNamePattern>
    <maxHistory>30</maxHistory>
     <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    <MaxFileSize>10MB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>   
</rollingPolicy>
   <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
      <immediateFlush>false</immediateFlush>
   </encoder>
</appender>
5. FAQ
 日志不输出的一个原因
<immediateFlush>false</immediateFlush> ,logback会buffer,然后输入.所有时看到文件为空



<?xml version="1.0" encoding="UTF-8" ?>
<configuration>

	<property file="/proj/envconfig/projectName/env.properties" />

	<substitutionProperty name="LOG_HOME_ALL"
		value="${LOG_HOME}/${PROJECT_NAME}/all" />
	<substitutionProperty name="LOG_HOME_ERROR"
		value="${LOG_HOME}/${PROJECT_NAME}/error" />
		
	<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss" />

	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>
				%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
			</pattern>
			<immediateFlush>false</immediateFlush>
		</encoder>
	</appender>

	<appender name="allRolling"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_HOME_ALL}/${PROJECT_NAME}-all.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_HOME_ALL}/${PROJECT_NAME}-all-%d{yyyyMMdd}.%i.zip
			</fileNamePattern>
			<maxHistory>30</maxHistory>
			<TimeBasedFileNamingAndTriggeringPolicy
				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<MaxFileSize>100MB</MaxFileSize>
			</TimeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
			</pattern>
			<charset>UTF-8</charset>
			<immediateFlush>false</immediateFlush>
		</encoder>
	</appender>

	<!-- error appender -->
	<appender name="errorRolling"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERROR</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>

		<file>${LOG_HOME_ERROR}/${PROJECT_NAME}-error.log</file>

		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_HOME_ERROR}/${PROJECT_NAME}-error-%d{yyyyMMdd}.%i.zip
			</fileNamePattern>
			<maxHistory>30</maxHistory>
			<TimeBasedFileNamingAndTriggeringPolicy
				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<MaxFileSize>100MB</MaxFileSize>
			</TimeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<encoder>
			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
			</pattern>
			<charset>UTF-8</charset>
			<immediateFlush>false</immediateFlush>
		</encoder>
	</appender>
		
	<logger name="proj.all" level="INFO">
		<appender-ref ref="allRolling" />
	</logger>
	
	<!-- root logger -->
	<root level="INFO">
		<!-- only for local test -->
		<!-- <appender-ref ref="STDOUT" /> -->
		<appender-ref ref="allRolling" />
		<appender-ref ref="errorRolling" />
	</root>

</configuration>

分享到:
评论

相关推荐

    shiro简单登录+logback日志记录

    《Shiro简单登录+Logback日志记录》 在现代Web开发中,权限管理和日志记录是两个不可或缺的环节。Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、会话管理和加密等功能,而Logback作为Log4j的替代...

    logback日志记录写入kafka

    Logback是一款广泛使用的Java日志框架,它提供了高效且灵活的日志记录功能。SLF4J(Simple Logging Facade for Java)则是一个日志抽象层,允许开发者在不修改代码的情况下更换不同的日志实现。本主题将详细介绍如何...

    logback使用方法

    Logback 是一个在 Java 应用程序中广泛使用的日志框架,由 Ceki Gülcü 创建,作为 Log4j 的继任者。它提供高效、灵活的日志记录功能,能够满足各种日志处理需求。本篇文章将详细介绍如何使用 logback,并着重讲解...

    logback使用方式简单总结

    Logback 是一个在Java应用程序中用于日志记录的开源框架,它是Log4j的后继者,由Ceki Gülcü(Log4j 的创始人)设计。Logback 提供了比Log4j 更高效、更灵活的日志记录解决方案,旨在提高开发人员的生产力并降低...

    JAVA使用Logback日志框架记录应用程序的运行日志.txt

    ### 使用Logback日志框架记录Java应用程序运行日志 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者理解程序的行为、诊断问题以及优化性能。对于Java应用程序而言,Logback是一个广泛使用的日志框架,...

    SpringBoot+Logback实现一个简单的链路追踪功能

    Logback是Spring Boot默认的日志实现,它提供了一种高效且灵活的日志记录方式。本文将介绍如何利用Spring Boot和Logback来实现一个简单的链路追踪功能,以便更好地跟踪用户在系统中的操作。 链路追踪(Traceability...

    SpringBoot Logback日志记录到数据库的实现方法

    SpringBoot Logback日志记录到数据库的实现方法 在本文中,我们将详细介绍SpringBoot Logback日志记录到数据库的实现方法。Logback是一个流行的日志记录框架,能够帮助开发者轻松地记录和管理应用程序中的日志信息...

    logback下载 日志文件jar包

    Logback 是一款广泛使用的日志记录框架,由 Ceki Gülcü 创建,作为其先前作品 Log4j 的改进版。这个压缩包包含了实现 Logback 功能所需的几个关键组件,以及一个配置文件,使得用户能够方便地管理和记录应用程序的...

    logback

    在IT领域,logback是一个广泛使用的日志记录框架,由Ceki Gülcü创建,它是log4j的后续项目,旨在提供更高的性能和更灵活的配置。Logback的主要目标是提高日志处理的效率,同时保持简单性和可配置性。它支持多种...

    logback jar包和logback.xml配置文件打包下载 小白新手学Java

    首先,`slf4j-api-1.7.26.jar`是SLF4J的API接口库,它提供了一组静态方法,如`LoggerFactory.getLogger()`,用于获取logger对象,然后通过这些对象进行日志记录。SLF4J不提供具体的日志实现,而是作为一个统一的接口...

    logback 使用

    在项目中,我们通常通过 SLF4J 的接口来记录日志,而不是直接使用 Logback API。 总之,Logback 提供了丰富的功能和高度的灵活性,使其成为 Java 开发者的首选日志框架。通过熟练掌握 Logback 的配置和使用,我们...

    logback 1.2.3.zip

    - "logback-access-1.2.3.jar": 这个模块扩展了Servlet容器的日志功能,可以与Servlet容器(如Tomcat、Jetty)集成,记录HTTP访问日志,包括请求方法、URL、响应状态码、响应时间等信息。 **知识点详述** 1. **...

    Slf4j+logback实现logback测试

    3. **使用Slf4j API**: 在Java代码中,通过import slf4j的LoggerFactory来获取Logger实例,然后调用其各种方法记录日志。例如: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public ...

    logback文档

    接着,文档对Appender进行了深入的探讨,包括了Appender的分类、各个Appender的详细使用方法以及如何在logback-classic和logback-access中使用Appender。Appender类型涵盖了ConsoleAppender、FileAppender、...

    logback-1.1.3.zip

    它通过接口定义了日志记录的方法,Logback 是 SLF4J 的推荐后端实现。 2. **绑定机制**:在项目中使用 SLF4J 时,需要添加 Logback 类库作为 SLF4J 的绑定,以实现实际的日志记录。 **四、使用 Logback-1.1.3** 1...

    logback例子

    **标题解析:** "Logback例子" 这个标题表明我们将要探讨的是关于Logback的日志框架的一个实际应用...通过学习和运行"Logback-demos",开发者可以深入理解Logback的用法,提高日志管理能力,更好地调试和优化应用程序。

    logback官方中文版文档.pdf

    要开始使用logback,首先需要确保项目中包含了logback的相关依赖。这通常通过Maven或Gradle等构建工具来管理。在SpringBoot项目中,logback通常与SLF4J(Simple Logging Facade for Java)一起使用,作为默认的日志...

    Logback中文文档-实用

    Logback是Java中一个非常流行的日志记录库,它是log4j的替代者,由log4j创始人之一Ceki Gülcü编写。Logback中文文档是一份关于Logback使用和配置的全面指南,它提供了深入的理论知识和实用的API应用,覆盖了...

    logback测试

    在这个“logback测试”中,我们将探讨如何配置和使用 Logback 进行基本的日志记录,包括打印到控制台和写入文件。 **一、Logback 的核心组件** 1. **Logger**: 这是实际执行日志记录的对象,你可以通过 ...

    logback+web项目Demo

    ` 获取日志实例,然后调用相应的方法进行日志记录。 ```java public class MyClass { private static final Logger logger = LoggerFactory.getLogger(MyClass.class); public void myMethod() { logger.info...

Global site tag (gtag.js) - Google Analytics