1.目录结构
2.java测试码
package com.test.main;
import java.net.URL;
import org.slf4j.ILoggerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
public final class Boot {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{
Logger logger = LoggerFactory.getLogger(Boot.class);
//从web.xml读配置
ApplicationContext ctx = new ClassPathXmlApplicationContext("config/applicationContext.xml");
// A a = (A) ctx.getBean("a");
// a.sayHello();
EntityTestTwo a = (EntityTestTwo)ctx.getBean("entityTwo");
//SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-ss");
//a.setBeginDate(new Date());
// a.setSex(222);
a.setTel("11111111111");
//logger.
//String path = System.getProperty("user.dir");
//BasicConfigurator.configure();
// PropertyConfigurator.configure(new ClassPathResource("config/logback.properties").getURL());
// System.out.println(new ClassPathResource("config/logback.properties").getURL());
String logbackCfg = "config/logback.xml";
URL logURL = new ClassPathResource(logbackCfg).getURL();
System.out.println(logURL);
ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();
LoggerContext loggerContext = (LoggerContext) loggerFactory;
//loggerContext.reset();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(loggerContext);
configurator.doConfigure(logURL);
logger.debug("dddd");
logger.info("wowowow");
logger.error("yanzhengosss");
// PropertyConfigurator.configure("/config/log4j.properties");
//B b = (B) ctx.getBean("b");
//b.sayHi();
//
/*String className="com.test.main.EntityTest";
Class test = null;
try {
test = Class.forName(className);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Method[] methods = test.getMethods();
Set<Method> set = new HashSet<Method>();
for(int i=0;i<methods.length;i++)
{
boolean otherFlag = methods[i].isAnnotationPresent(AnotationTest.class);
if(otherFlag) set.add(methods[i]);
}
for(Method m: set)
{
AnotationTest anotationTest = m.getAnnotation(AnotationTest.class);
System.out.println(anotationTest.regExp());
System.out.println("创建的社区:"+anotationTest.ifTip());
}*/
}
}
3.配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<Property name="log.base" value="./logs/anttesttools" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log.base}.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>${log.base}.%i.log</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>5</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>5MB</MaxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%date [%thread] %-5level %logger{80} - %msg%n</Pattern>
</layout>
</appender>
<logger name="anttesttools" level="debug" />
<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>
4.日志输出
2009-11-22 17:27:57,192 [main] ERROR com.test.main.Boot - yanzhengosss
2009-11-22 17:30:16,470 [main] DEBUG com.test.main.Boot - dddd
2009-11-22 17:30:16,470 [main] INFO com.test.main.Boot - wowowow
2009-11-22 17:30:16,470 [main] ERROR com.test.main.Boot - yanzhengosss
2009-11-22 17:37:58,262 [main] DEBUG com.test.main.Boot - dddd
2009-11-22 17:37:58,278 [main] INFO com.test.main.Boot - wowowow
2009-11-22 17:37:58,278 [main] ERROR com.test.main.Boot - yanzhengosss
2009-11-22 17:38:15,049 [main] DEBUG com.test.main.Boot - dddd
2009-11-22 17:38:15,064 [main] INFO com.test.main.Boot - wowowow
2009-11-22 17:38:15,064 [main] ERROR com.test.main.Boot - yanzhengosss
2009-11-22 17:43:37,366 [main] DEBUG com.test.main.Boot - dddd
2009-11-22 17:43:37,366 [main] INFO com.test.main.Boot - wowowow
2009-11-22 17:43:37,366 [main] ERROR com.test.main.Boot - yanzhengosss
2009-11-22 17:44:09,270 [main] DEBUG com.test.main.Boot - dddd
2009-11-22 17:44:09,270 [main] INFO com.test.main.Boot - wowowow
2009-11-22 17:44:09,286 [main] ERROR com.test.main.Boot - yanzhengosss
2009-11-22 17:44:58,741 [main] DEBUG com.test.main.Boot - dddd
2009-11-22 17:44:58,741 [main] INFO com.test.main.Boot - wowowow
2009-11-22 17:44:58,741 [main] ERROR com.test.main.Boot - yanzhengosss
2009-11-22 18:26:29,220 [main] DEBUG com.test.main.Boot - dddd
2009-11-22 18:26:29,236 [main] INFO com.test.main.Boot - wowowow
2009-11-22 18:26:29,236 [main] ERROR com.test.main.Boot - yanzhengosss
- 大小: 6.7 KB
分享到:
相关推荐
本文将深入探讨“调试日志之slf4j+logback”的主题,这两个组件是Java开发中的常见日志解决方案。 SLF4J(Simple Logging Facade for Java)是一个日志门面,它为各种日志框架提供了统一的接口,如Log4j、Logback等...
4. log4j-xxx.jar:可能是一个旧版的Log4j实现,有时为了兼容遗留代码或者特定的Log4j特性。 5. jul-to-slf4j.jar:Java Util Logging到SLF4J的桥接器,允许使用SLF4J来记录JUL日志。 6. slf4j-log4j12.jar:SLF4J到...
SLF4J提供了一种统一的日志接口,使得开发者可以在不改变代码的情况下切换不同的日志实现,如Log4j、Logback或Java内置的日志系统。它的核心思想是通过接口隔离日志记录的逻辑,避免与具体实现耦合。 2. **Logback...
- **兼容性**:SLF4J支持多种日志实现,包括Log4J、Java Util Logging (JUL) 等,用户可以根据实际需求自由选择。 - **灵活性**:用户可以在不修改源代码的情况下更换底层的日志实现库,这为后期维护带来了极大的...
Slf4j(Simple Logging Facade for Java)是一个日志门面,它提供了一个统一的API,允许开发者选择合适的日志框架,如Logback、Log4j等,而无需修改代码。Slf4j的主要目标是为各种日志框架提供一个简单统一的接口,...
Logback 是 SLF4J 推荐的日志实现,它由 log4j 的创始人设计,提供了高速、灵活且可靠的日志记录功能。 使用 SLF4J 和 Logback 进行日志记录配置的主要目的是: 1. 为 Spring 的开发提供了一个更快速更广泛的入门...
SSM(Spring、SpringMVC、MyBatis)与Apache Shiro、SLF4J以及Logback是Java Web开发中的重要框架和工具,它们在构建安全、高效且可维护的Web应用方面起着关键作用。这里我们将深入探讨这些技术的核心概念、功能以及...
SLF4J(Simple Logging Facade for Java)和Logback是Java日志处理中的两个重要组件,它们在软件开发中广泛用于记录应用程序的运行时信息。SLF4J是一个日志门面,它提供了一个统一的接口,允许开发人员在运行时插入...
SLF4J(Simple Logging Facade for Java)和Logback是Java日志处理的两个重要组件,它们在软件开发中广泛用于记录应用程序的运行时信息。SLF4J是一个日志门面,它提供了一个统一的接口,允许开发人员在运行时插入所...
通过上述内容,我们可以了解到SLF4J和Logback日志系统的使用方法以及其主要特点。对于开发人员来说,理解并熟练使用这套日志系统,能够帮助提升代码的可读性,方便调试和问题排查,同时也能提高项目的维护性。
### SLF4J + Logback 快速上手教程 #### 一、SLF4J 简介 **SLF4J**(Simple Logging Facade for Java)是一种简单...通过上述步骤,你可以快速地将SLF4J和Logback集成到你的Java应用程序中,实现高效、灵活的日志管理。
总结来说,SLF4J+Logback是现代Java项目中的首选日志解决方案,因为它们提供了一种灵活、高性能的日志记录机制。然而,理解不同日志框架之间的差异和应用场景,可以帮助开发者根据项目需求做出最佳选择。在实际工作...
SLF4J(Simple Logging Facade for Java)是Java日志框架的一个抽象层,它提供了一个简单的API,允许开发者在不修改代码的情况下切换底层的日志实现。Logback是SLF4J的一个具体实现,由著名Java开源框架Log4j的创始...
SLF4J(Simple Logging Facade for Java)是Java日志框架的一个抽象层,它提供了一个统一的API,允许开发者选择任何支持的底层日志库,如Logback、Log4j或Java内置的日志系统。Logback是陈雪峰创建的,作为Log4j的...
SLF4J(Simple Logging Facade for Java)是Java日志记录的一个接口层,它提供了一种标准的方式来引入日志框架,而无需在代码中硬编码具体的日志实现。SLF4J允许开发者在部署时插入所需的日志实现,比如logback、log...
SLF4J(Simple Logging Facade for Java)和Logback是Java日志处理中的两个重要组件,它们在软件开发中广泛用于记录应用程序的运行时信息。SLF4J作为一个日志门面,提供了一种标准的接口,允许开发者在运行时插入...
Logback 和 SLF4J(Simple Logging Facade for Java)是Java世界中广泛使用的日志框架,它们配合使用可以提供高效、灵活的日志管理方案。本文将详细介绍如何使用logback-test.xml配置文件进行日志记录,并通过一个...
SLF4J(Simple Logging Facade for Java)与Logback是Java日志处理中的两个重要组件,它们在软件开发中广泛用于实现灵活、高效的日志记录。SLF4J作为一个日志门面,提供了一种统一的日志API,使得开发者能够在不绑定...
SLF4J(Simple Logging Facade for Java)和Logback是Java开发中广泛使用的日志框架,它们提供了灵活的日志记录解决方案。SLF4J是一个接口层,它为各种日志框架提供了统一的抽象,而Logback是SLF4J的一个实现,用于...
【SLF4J(Simple Logging Facade for Java)】是一个日志门面,为各种日志框架如log4j、Logback提供一个统一的接口。SLF4J允许开发者在部署时选择合适的日志实现,只需更换绑定的日志实现库即可。这使得项目具有更好...