- 浏览: 146643 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (95)
- java (25)
- 数据库 (9)
- js (0)
- 框架 (10)
- 小问题 (8)
- 转载 (2)
- 配置开发环境 (6)
- 其它 (4)
- 功能记录 (2)
- 安全 (1)
- shell (3)
- spring ibaitis struts2 redis desc (1)
- spring security3.1 (1)
- 小问题 环境 (1)
- 小问题 环境 DelegatingFilterProxy cannot be cast to Filter (0)
- redis filter java (1)
- java redis (2)
- spring quartz 集群 批处理 (1)
- java mybatis (1)
- Junit soap (1)
- mock junit (0)
- mock junit spring (1)
- java jsoup (0)
- jsoup (1)
- python27 pycharm (1)
- maven pom (1)
- java log (1)
- mybatis 分页 (1)
- mysql (1)
- 业务 (1)
- java 测试 (1)
- java zookeeper 批处理 (1)
- hive hadoop (1)
- hive (1)
- hadoop (1)
- maven archetype (1)
- python rsa (1)
- python 页面分析 (1)
- python (0)
最新评论
-
wuyafeng123:
秒杀活动设计思路 -
indiajohns:
非常感谢,很快解决了我的问题
jmesa查询条件中文的编码转换问题 -
yujiaao:
太好了,感谢啊!这行在我这好象不行:URLDecoder.de ...
jmesa查询条件中文的编码转换问题 -
michael_wong:
呵呵,找到啦。在这里有全部源码:http://ishare. ...
Maven权威指南 的simple-parent 工程源码 -
michael_wong:
我也在找啊
Maven权威指南 的simple-parent 工程源码
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,然后输入.所有时看到文件为空
系统中的日志采用 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>
发表评论
-
详解ReentrantReadWriteLock
2016-04-21 14:34 0package java.util.concurrent. ... -
java内部类使用场景体会
2016-04-21 11:56 967内部类的作用: 1.完善多重继承。 疑问在于:多重继承可以用 ... -
表产生sequence功能,测试并发
2015-11-18 16:21 661@Test public void testSerial ... -
Demo
2014-11-03 21:20 0package com.xly.jsoup.nbjy; /* ... -
反射小计
2014-10-07 11:32 529Test.java方法dd重载 class Test{ ... -
Btrace测试
2014-07-17 17:56 641偶尔看到BTrace,必须记录一下 利用hotSpot虚拟机 ... -
java对象占用heap的大小
2013-07-31 10:09 953一个对象占用的堆空间首先是和它有多少个成员变量直接相关 pub ... -
BeanCopier和BeanUtils实现对象复制,处理date类型
2013-03-29 12:52 4497没有废话 先是BeanUtils的实现类型: impo ... -
liferay 为JournalArticle添加分类
2013-03-21 15:45 1115/** * 为网页内容添加分类 ... -
liferay直接跳转到网页内容编辑页面修改的friendlyUrl效果
2013-03-21 14:11 1267找到portlat-impl.jar包,在目录 port ... -
JMS_DEMO
2013-03-14 20:25 15231.安装activeMq 修改service.pr ... -
Xmemcached/jedis springdemo
2013-02-20 13:13 932Xmemcached: HelloWordTest.ja ... -
规则检查功能的demo
2013-01-31 12:55 0规则检查Demo,包括mina,线程池功能 -
使用spring的线程安全web应用(翻译Thread-safe webapps using Spring)
2013-01-11 16:38 1919http://www.javalobby.org/articl ... -
JAVA虚拟机锁机制的升级流程
2013-01-08 14:52 2882http://ifeve.com/java-synchroni ... -
NIO学习
2012-11-27 11:49 1516最需要关注的是,应用进程、内核、IO三个概念。 所谓java的 ... -
Tomcat的HttpConnector/HttpProcesser(tomcat源码学习)
2012-11-21 10:47 1274先启动进程HttpProcesser,等请求到达后加入sock ... -
web.xml加载
2011-02-18 17:24 917转: web.xml文件内容加载顺序为:context- pa ... -
webLogic中 Cannot parse POST parameters of request: 的问题小记
2010-11-25 13:25 7834报错内容: weblogic.utils.NestedRunt ... -
数字签名Java实现小记
2010-08-30 10:42 1555一个证书发放单位给的证书里面包括一个发送单位的公钥,当前用户的 ...
相关推荐
《Shiro简单登录+Logback日志记录》 在现代Web开发中,权限管理和日志记录是两个不可或缺的环节。Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、会话管理和加密等功能,而Logback作为Log4j的替代...
Logback是一款广泛使用的Java日志框架,它提供了高效且灵活的日志记录功能。SLF4J(Simple Logging Facade for Java)则是一个日志抽象层,允许开发者在不修改代码的情况下更换不同的日志实现。本主题将详细介绍如何...
Logback 是一个在 Java 应用程序中广泛使用的日志框架,由 Ceki Gülcü 创建,作为 Log4j 的继任者。它提供高效、灵活的日志记录功能,能够满足各种日志处理需求。本篇文章将详细介绍如何使用 logback,并着重讲解...
Logback 是一个在Java应用程序中用于日志记录的开源框架,它是Log4j的后继者,由Ceki Gülcü(Log4j 的创始人)设计。Logback 提供了比Log4j 更高效、更灵活的日志记录解决方案,旨在提高开发人员的生产力并降低...
### 使用Logback日志框架记录Java应用程序运行日志 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者理解程序的行为、诊断问题以及优化性能。对于Java应用程序而言,Logback是一个广泛使用的日志框架,...
Logback是Spring Boot默认的日志实现,它提供了一种高效且灵活的日志记录方式。本文将介绍如何利用Spring Boot和Logback来实现一个简单的链路追踪功能,以便更好地跟踪用户在系统中的操作。 链路追踪(Traceability...
SpringBoot Logback日志记录到数据库的实现方法 在本文中,我们将详细介绍SpringBoot Logback日志记录到数据库的实现方法。Logback是一个流行的日志记录框架,能够帮助开发者轻松地记录和管理应用程序中的日志信息...
Logback 是一款广泛使用的日志记录框架,由 Ceki Gülcü 创建,作为其先前作品 Log4j 的改进版。这个压缩包包含了实现 Logback 功能所需的几个关键组件,以及一个配置文件,使得用户能够方便地管理和记录应用程序的...
在IT领域,logback是一个广泛使用的日志记录框架,由Ceki Gülcü创建,它是log4j的后续项目,旨在提供更高的性能和更灵活的配置。Logback的主要目标是提高日志处理的效率,同时保持简单性和可配置性。它支持多种...
首先,`slf4j-api-1.7.26.jar`是SLF4J的API接口库,它提供了一组静态方法,如`LoggerFactory.getLogger()`,用于获取logger对象,然后通过这些对象进行日志记录。SLF4J不提供具体的日志实现,而是作为一个统一的接口...
在项目中,我们通常通过 SLF4J 的接口来记录日志,而不是直接使用 Logback API。 总之,Logback 提供了丰富的功能和高度的灵活性,使其成为 Java 开发者的首选日志框架。通过熟练掌握 Logback 的配置和使用,我们...
- "logback-access-1.2.3.jar": 这个模块扩展了Servlet容器的日志功能,可以与Servlet容器(如Tomcat、Jetty)集成,记录HTTP访问日志,包括请求方法、URL、响应状态码、响应时间等信息。 **知识点详述** 1. **...
3. **使用Slf4j API**: 在Java代码中,通过import slf4j的LoggerFactory来获取Logger实例,然后调用其各种方法记录日志。例如: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public ...
接着,文档对Appender进行了深入的探讨,包括了Appender的分类、各个Appender的详细使用方法以及如何在logback-classic和logback-access中使用Appender。Appender类型涵盖了ConsoleAppender、FileAppender、...
它通过接口定义了日志记录的方法,Logback 是 SLF4J 的推荐后端实现。 2. **绑定机制**:在项目中使用 SLF4J 时,需要添加 Logback 类库作为 SLF4J 的绑定,以实现实际的日志记录。 **四、使用 Logback-1.1.3** 1...
**标题解析:** "Logback例子" 这个标题表明我们将要探讨的是关于Logback的日志框架的一个实际应用...通过学习和运行"Logback-demos",开发者可以深入理解Logback的用法,提高日志管理能力,更好地调试和优化应用程序。
要开始使用logback,首先需要确保项目中包含了logback的相关依赖。这通常通过Maven或Gradle等构建工具来管理。在SpringBoot项目中,logback通常与SLF4J(Simple Logging Facade for Java)一起使用,作为默认的日志...
Logback是Java中一个非常流行的日志记录库,它是log4j的替代者,由log4j创始人之一Ceki Gülcü编写。Logback中文文档是一份关于Logback使用和配置的全面指南,它提供了深入的理论知识和实用的API应用,覆盖了...
在这个“logback测试”中,我们将探讨如何配置和使用 Logback 进行基本的日志记录,包括打印到控制台和写入文件。 **一、Logback 的核心组件** 1. **Logger**: 这是实际执行日志记录的对象,你可以通过 ...
` 获取日志实例,然后调用相应的方法进行日志记录。 ```java public class MyClass { private static final Logger logger = LoggerFactory.getLogger(MyClass.class); public void myMethod() { logger.info...