这几天用了用Logback感觉挺爽的,性能上比log4j 1改善了不少performance(据说前些天出来的log4j 2 又相对于Logback在performance上又提升了不少),而且功能还是很强大的。
提到Logback就不得不了解SLF4j(Sample Logging Facade for java) Java简单的日志门面,从它的命名我们不难看出它是一个通用的logging接口,它兼容了Log4j 1 (Log4j 2 现在不得而知)、java.util.logging和Jakarta Commons Logging,这几个比较流行的日志框架,而Logback是SLF4j的默认实现。
使用Logback需要使用的jar:
logback-core-1.0.13.jar
logback-classic-1.0.13.jar
slf4j-api-1.7.5.jar
jcl-over-slf4j-1.7.5.jar 将common-logging.jar与slf4j对接,然后由Logback输出
Logback会在classpath 中按照如下顺序读取配置文件:
- logback.groovy
- logback-test.xml
- logback.xml
上例子:
<?xml version="1.0" encoding="UTF-8" ?> <configuration debug="false"> <property name="logdir" value="D:/log"></property> <!-- 控制台 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern> </encoder> </appender> <!-- 出错日志 appender --> <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 按天回滚 daily --> <!-- logdir 在maven profile里配置 --> <fileNamePattern>${logdir}/errorlog-%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 日志最大的历史 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern> </encoder> </appender> <!-- 访问日志 appender --> <appender name="COMMON" class="ch.qos.logback.core.rolling.RollingFileAppender"> <Encoding>UTF-8</Encoding> <file>${logdir}/commonlog.log</file> <!--按每小时滚动文件,如果一个天内达到10M(取决于fileNamePattern中的%d{yyyy-MM-dd_HH}还是%d{yyyy-MM-dd})也会回滚文件,回滚文件将会被压缩成zip格式 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 按天回滚 daily --> <fileNamePattern>${logdir}/commonlog-%d{yyyy-MM-dd}.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>10M</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern> </encoder> </appender> <root level="info"/> <!--错误日志--> <logger name="error" level="info"> <appender-ref ref="STDOUT"/> <appender-ref ref="ERROR"/> </logger> <logger name="com.sdw.soft" level="debug"> <appender-ref ref="STDOUT"/> <appender-ref ref="COMMON"/> </logger> </configuration>
为了方便日志记录而又不手动重复一遍又一遍写private static final Logger logger = LoggerFactory.logger(XXX);
一下使用了AOP偷了懒。
/** * @Author: Sonicery_D * @Date: 2014-9-10 */ @Component @Aspect public class LoggerUtils { private static final Logger logger = LoggerFactory.getLogger(LoggerUtils.class); @Pointcut(value="execution(* com.sdw.soft..*Service.*(..))") public void printLog(){ } @Before(value="printLog()") public void beforeExecute(JoinPoint jp){ String methodName = jp.getSignature().getName(); String className = jp.getTarget().getClass().getName(); StringBuffer sb = new StringBuffer("类["+className+"]-方法["+methodName+"]开始执行------"); int i = 1; for(Object obj : jp.getArgs()){ if(obj instanceof String){ sb.append("arg"+i+"="+obj.toString()+","); } i++; } logger.info("AOP 日志拦截---{}",sb.toString()); } }
相关推荐
- **logback+kafka**: 日志通过logback生成后,经kafka消息队列传递到Logstash,Logstash再将处理后的日志存储到Elasticsearch,最后通过Kibana进行分析。 - **Logstash直接读取日志文件**:Logstash直接从日志文件...
SSM+Lucene+logback+Druid开发的Java开源博客系统源码 项目描述 网站面向有撰写博客习惯的用户,个人可注册成为网站用户(博主),在系统中创建自己的博文类别、标签,使用Markdown语法创作博文,创作好后将博文...
**日志记录在软件开发中扮演着至关重要的角色,它帮助开发者追踪程序运行状态,定位错误,优化性能。...在SelfFourJ这个DEMO中,你可以亲身体验到这些概念的实际应用,进一步加深对日志处理的理解。
只要里面的logback-classic-1.1.7,logback-core-1.1.7,slf4j-api-1.7.21的JAR就可以打印出日志信息,而带有source表示对应的JAR包的源代码。可以要也可以不要
在实际项目中,"timber+logback+CashHandler"的组合可以帮助开发者实现高效、规范的日志管理和异常处理,提升应用的质量和稳定性。通过理解和利用这些工具,我们可以更好地维护和优化我们的Android应用。
SpringBoot框架以其简洁的配置和强大的功能深受开发者喜爱,而Logback和Slf4j则是Java世界中广泛使用的日志处理库。本文将深入探讨如何利用Logback和Slf4j在SpringBoot项目中实现日志的敏感信息脱敏,以保护用户隐私...
在提供的"Logback+web项目Demo"中,你可以看到如何将Logback集成到一个Web应用程序中,并进行日志输出。这个Demo应该包含了一个简单的Web应用,以及配置好的 `logback.xml` 文件。通过导入Eclipse,你可以直接运行和...
在这个“slf4j+logback+springmvc+maven小例子”中,我们看到的是一个结合了这些技术的简单应用。Spring MVC是一个基于Spring框架的轻量级Web MVC框架,它简化了构建交互式、RESTful的Web应用的流程。Maven则是一个...
SpringBoot+AOP日志服务是将流行的Java框架Spring Boot与面向切面编程(AOP)技术结合,用于实现高效、灵活的日志管理。在Spring Boot项目中,AOP可以帮助我们以非侵入式的方式记录应用运行时的行为,尤其是对于业务...
在这个"Spring boot+ES+logback+maven"的框架空工程中,开发者可以快速开始编写业务逻辑,因为所有基础架构组件已经配置好。Elasticsearch 用于存储和搜索日志,Logback 提供日志记录,Spring Boot 管理整个应用生命...
标题 "struts+spring+mybatis+logback+easyui" 暗示了这是一个基于Java的Web开发框架集成方案,常用于构建企业级应用。这个组合包括了四个主要组件和一个前端UI库: 1. **Struts**:Struts是Apache软件基金会的一个...
Logback+SLF4J是Java日志框架的高级组合,提供高效、灵活的日志记录功能。SLF4J(Simple Logging Facade for Java)是一个日志抽象层,允许开发者在运行时插入任意日志实现,而Logback是SLF4J的一个具体实现,它在...
本项目采用了一种常见的技术栈:“Maven+SpringMVC+MyBatis+Logback+WebSocket”,这是一套强大的组合,适合快速开发中大型企业级应用。接下来,我们将详细探讨这些技术及其相互间的协同工作。 1. Maven: Maven是...
以下是使用logback+slf4j自定义Appender的详细步骤: 1. **创建Appender类**:首先,你需要创建一个继承自`ch.qos.logback.core.AppenderBase<ILoggingEvent>`的类。在这个类中,你需要覆盖`append()`方法,该方法...
总结来说,"logback+slf4j打印工具类"是一种在Java项目中实现日志记录的有效方式,通过SLF4J的简洁API和Logback的强大功能,可以轻松地定制日志记录策略,例如每天生成一个日志文件。这种工具类的使用,不仅提高了...
在实际开发中,我们可能还需要根据项目需求调整日志策略,例如,增加异步日志处理以提高性能,或者配置日志滚动和大小限制。同时,通过使用`logging.level.<package>=<level>`在SpringBoot的`application.properties...
综上所述,这个项目可能包含了一个完整的Web应用程序,具备日志记录功能,同时处理JSON和XML数据的转换,以满足不同场景下的数据交互需求。通过研究这个源码,开发者可以学习到如何在实际项目中有效地使用Logback和...
综上所述,这个项目采用了成熟的SSH框架进行开发,结合了高效的Druid数据库连接池,强大的日志系统Logback,以及用于JSON处理的Jackson库,构建了一个功能齐全、性能优秀的Java Web应用。这样的组合在企业级应用开发...
Logback提供了丰富的日志级别(如DEBUG, INFO, WARN, ERROR等),可以根据需求调整日志输出级别。在SpringBoot项目中,我们可以通过配置logback-spring.xml文件来定制日志输出格式、路径、级别等,确保日志管理和...
Spring Boot 使用 Logback 输出日志文件 Spring Boot 提供了多种日志记录工具,包括 Logback、Log4J2 和 Java Util Logging。默认情况下,Spring Boot 使用 Logback 作为日志记录工具。在日志记录过程中,我们可以...