`
xly1981
  • 浏览: 142453 次
  • 性别: 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>

分享到:
评论

相关推荐

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

    例如,我们使用logger.info()方法记录了一条INFO级别的日志信息表示应用程序开始运行;使用logger.debug()方法记录了一条DEBUG级别的日志信息表示正在调试;使用logger.error()方法记录了一条ERROR级别的日志信息...

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

    Spring Boot默认使用LogBack日志系统,并且已经引入了相关的jar包,所以我们无需任何配置便可以使用LogBack打印日志。这篇文章主要介绍了SpringBoot+Logback实现一个简单的链路追踪功能,需要的朋友可以参考下

    Logback用户手册中文版

    发布记录.......................................................................................................................... 1 1. 介绍...............................................................

    stackify-log-logback:适用于Java日志记录框架Logback的Stackify Log Appender

    Stackify Logback记录器 Logback记录器追加程序,用于将日志消息和异常发送到Stackify。 错误和日志概述: : 注册试用版: : 安装 将其添加为Maven依赖项: &lt; groupId&gt;com.stackify&lt;/ groupId&gt; &lt; artifactId&gt;...

    logback-servlet:Servlet for Logback在运行时配置日志级别

    在运行时更改每个记录器的Logback级别 从初始logback.xml将级别重置为其默认值 按名称或级别对记录器进行排序 按名称过滤记录器 用法 将文件放入您的项目中,并将其声明为Servlet。 Servlet 3示例: Dynamic ...

    Spring Boot 使用 logback、logstash、ELK 记录日志文件的方法

    主要介绍了Spring Boot 使用 logback、logstash、ELK 记录日志文件的思路详解,文中给大家提到了logback 取代 log4j的理由,需要的朋友可以参考下

    concordion-logback-extension-demo:该项目演示了Concordion Logback扩展的用法

    该项目演示了 的用法 示例输出显示。 这演示了按示例和按规范记录(请参见规范底部的链接)。 可以使用日志文件顶部的Show 'TRACE' level statements切换Show 'TRACE' level statements日志语句。 Logging Demo...

    gcloud-logging-slf4j-logback:用于sl4j + logback的gcloud-logging json日志附加程序

    该库提供了一个基于json的简单布局,可用于将结构化日志发送到gcloud日志记录。 该附加器在中特别有用,在,应将日志发送到stdout。 Stackdriver流利的插件实现 这个产品准备好了吗? 是的。 用法 在build....

    crashlytics-logback-appender:简单的logback附加程序可登录Crashlytics,以获取增强的崩溃报告

    用法在您的build.gradle文件中添加为依赖build.gradle : implementation 'com.github.daberni:crashlytics-logback-appender:0.2.3'设置Fabric / Crashlytics之后,您必须设置附加程序以进行正确的日志记录。...

    json-log-domain:使用Logback和Stackdriver支持JSON日志记录的库

    使用特定于域的子树进行JSON日志记录 基于YAML的简单定义格式 通过或插件生成的用户友好型帮助程序类 Markdown文档生成器 Elasticsearch配置生成器 JAX-RS日志注释 多个域可以合并在同一个log语句中。 错误,功能...

    logback-webhook-appender:登录Webhook Appender

    该项目旨在监视应用程序日志并将“ WARNING和“ ERROR日志记录事件发送到已配置的webhook。 Appender配置非常通用,这使得可以使用几乎无限数量的通知渠道。 使用Zappier等第三方服务可以完成更复杂的集成。 1....

    Linux tomcat下catalina.out日志文件分割

    tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli.jar包到./bin/目录下; 2.拷贝log4j.jar,lo4j....

    zio-slf4j:slf4j的参照透明日志记录

    齐奥-slf4j slf4j的参照透明日志记录不要忘记在类路径中包含slf4j-api的实现(例如logback)。 libraryDependencies += "com.nequissimus" %% "zio-slf4j" % "0.4.1"用法有关简单的用法示例,请参见 。Scala兹zio-...

    log4db2:用SQL-PL编写的DB2 for LUW的日志记录实用程序-开源

    Log4db2是DB2 LUW的日志记录实用程序,它使用带有SQL PL代码SQL指令。 其目的是提供一种从SQL例程编写消息的简便方法,并有可能直接从数据库中查询这些消息并查看生成的输出,从而可以监视进程的进度。 该实用程序...

    StudentInfoManage2.rar

    在Java编程中,信息管理通常涉及数据的存储、处理和系统的组织。以下是一些Java中信息管理的常见技术和方法: 1. **数据结构和集合类...6. **日志记录**:Java中流行的日志框架(如Log4j、Logback)可以帮助记录程序运

    scala-logger

    Scala记录仪 一个简单的日志记录包装器库,提供了Scala惯用语境传播包装Logback记录器。用法(适用于0.8.0及更高版本) 添加到sbt: libraryDependencies + = " com.emarsys " %% " scala-logger " % " x.y.z " 最新...

    ALMA-API-Example-usage

    此外,该项目还建议通过logback进行日志记录,以为与Alma-API集成的应用程序和服务设置标准的日志记录协议。 如何建造 该项目使用gradle。 确保您拥有最新的gradle版本: curl -s "https://get.sdkman.io" | bash ...

    dropwizard-sifting-appender

    日志记录插件,用于使用logback SiftingAppender根据MDC上下文将日志消息动态拆分为单独的日志文件。 之所以需要这样做,是因为Dropwizard会覆盖默认的加载logback配置的机制(logback.xml),以支持application....

    slime:Scala的结构化日志记录

    例如,您可以使用logback.xml启用slime : &lt;? xml version = " 1.0 " encoding = " UTF-8 " ?&gt;&lt; configuration&gt; &lt; appender xss=removed xss=removed&gt; &lt; encoder xss=removed&gt; &lt; format xss=removed&gt; ...

    log-config-core:基于springMVC的动态等级

    具体使用方法: //rainbowhorse.site/动态修改日志% ♡Maven坐标 &lt; groupId&gt;com.github.mx-go&lt;/ groupId&gt; &lt; artifactId&gt;log-config-core &lt; version&gt;1.0.0 使用 jar包中的LogbackServlet通过web-fragment会自动...

Global site tag (gtag.js) - Google Analytics