Log4j maven依赖配置

3 篇文章 0 订阅

原文地址:https://blog.csdn.net/yulei_qq/article/details/77620772

 

做项目的时候,经常需要给应用打印日志,LOG4J是我们的不二选择,项目管理使用maven构建时,pom.xml配置如下

 

 
  1. <!--日志 start-->

  2. <dependency>

  3. <groupId>log4j</groupId>

  4. <artifactId>log4j</artifactId>

  5. <version>1.2.17</version>

  6. </dependency>

  7. <dependency>

  8. <groupId>org.slf4j</groupId>

  9. <artifactId>slf4j-api</artifactId>

  10. <version>1.7.25</version>

  11. </dependency>

  12. <dependency>

  13. <groupId>org.slf4j</groupId>

  14. <artifactId>slf4j-log4j12</artifactId>

  15. <version>1.7.25</version>

  16. <scope>test</scope>

  17. </dependency>

  18. <dependency>

  19. <groupId>org.slf4j</groupId>

  20. <artifactId>slf4j-simple</artifactId>

  21. <version>1.7.25</version>

  22. <scope>test</scope>

  23. </dependency>

  24. <!--日志end-->

 

 

log4j.properties配置样例如下

 

 
  1. ### set log levels ###

  2. log4j.rootLogger=DEBUG

  3.  
  4. ### direct log messages to stdout ###

  5. log4j.appender.A1=org.apache.log4j.ConsoleAppender

  6. log4j.appender.A1.Target=System.out

  7. log4j.appender.A1.layout=org.apache.log4j.PatternLayout

  8. log4j.appender.A1.layout.ConversionPattern=%-2p %m%n

  9.  
  10. ### direct messages to file framework.log ###

  11. log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender

  12. ##log4j.appender.A2.File=D:/logs/resmanm.log

  13. log4j.appender.A2.DatePattern='.'yyyy-MM-dd

  14. log4j.appender.A2.layout=org.apache.log4j.PatternLayout

  15. log4j.appender.A2.layout.ConversionPattern=%-5p(%10c{1}) %m%n

  16.  
  17. ### application log config ###

  18. #log4j.logger.com.linkage=ERROR,A2

  19. log4j.logger.com.ch1=DEBUG,A1,A2

  20. ##log4j.logger.org.quartz.impl.StdSchedulerFactory=DEBUG,A1,A2

 

最后,附上一段定时器的demo,作为日志打印样例。

 

 
  1. package com.ch1;

  2.  
  3. import org.quartz.*;

  4. import org.quartz.impl.StdSchedulerFactory;

  5. import org.slf4j.Logger;

  6. import org.slf4j.LoggerFactory;

  7.  
  8. import java.util.Date;

  9.  
  10. import static org.quartz.DateBuilder.evenMinuteDate;

  11.  
  12. public class SimpleExample {

  13.  
  14. public void run () throws SchedulerException {

  15. Logger log = LoggerFactory.getLogger(SimpleExample.class);

  16.  
  17. log.info("------- Initializing ----------------------");

  18. SchedulerFactory sf = new StdSchedulerFactory();

  19. Scheduler sched = sf.getScheduler();

  20. log.info("------- Initialization Complete -----------");

  21. // computer a time that is on the next round minute

  22. Date runTime = evenMinuteDate(new Date());

  23.  
  24. log.info("------- Scheduling Job -------------------");

  25. // define the job and tie it to our HelloJob class

  26. JobDetail job = JobBuilder.newJob(HelloJob.class)

  27. .withIdentity("job1","group1").build();

  28.  
  29. // Trigger the job to run on the next round minute

  30. Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1")

  31. .startAt(runTime).build();

  32.  
  33. // Start up the scheduler (nothing can actually run until the

  34. // scheduler has been started)

  35.  
  36. sched.start();

  37. log.info("------- Started Scheduler -----------------");

  38. // wait long enough so that the scheduler as an opportunity to

  39. // run the job!

  40. log.info("------- Waiting 65 seconds... -------------");

  41. try {

  42. // wait 65 seconds to show job

  43. Thread.sleep(65L * 1000L);

  44. } catch (InterruptedException e) {

  45. e.printStackTrace();

  46. }

  47.  
  48. // shut down the scheduler

  49. log.info("------- Shutting Down ---------------------");

  50. sched.shutdown(true);

  51. log.info("------- Shutdown Complete -----------------");

  52. }

  53.  
  54.  
  55. public static void main(String[] args) throws SchedulerException {

  56. SimpleExample example = new SimpleExample();

  57. example.run();

  58. }

  59. }


开发工具使用的是Idea,日志输出:

 

 
  1. C:\Java\jdk1.8.0_144\bin\java "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2017.2.1\lib\idea_rt.jar=56553:D:\Program Files\JetBrains\IntelliJ IDEA 2017.2.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Java\jdk1.8.0_144\jre\lib\rt.jar;E:\cBSS微服务\demo\quartz_test\target\classes;C:\Users\yulei\.m2\repository\org\quartz-scheduler\quartz\2.2.3\quartz-2.2.3.jar;C:\Users\yulei\.m2\repository\c3p0\c3p0\0.9.1.1\c3p0-0.9.1.1.jar;C:\Users\yulei\.m2\repository\org\quartz-scheduler\quartz-jobs\2.2.3\quartz-jobs-2.2.3.jar;C:\Users\yulei\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;C:\Users\yulei\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;C:\Users\yulei\.m2\repository\org\slf4j\slf4j-log4j12\1.7.25\slf4j-log4j12-1.7.25.jar com.ch1.SimpleExample

  2. log4j:WARN File option not set for appender [A2].

  3. log4j:WARN Are you using FileAppender instead of ConsoleAppender?

  4. log4j:ERROR Either File or DatePattern options are not set for appender [A2].

  5. log4j:ERROR No output stream or file set for the appender named [A2].

  6. INFO ------- Initializing ----------------------

  7. log4j:WARN No appenders could be found for logger (org.quartz.impl.StdSchedulerFactory).

  8. log4j:WARN Please initialize the log4j system properly.

  9. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

  10. INFO ------- Initialization Complete -----------

  11. INFO ------- Scheduling Job -------------------

  12. INFO ------- Started Scheduler -----------------

  13. INFO ------- Waiting 65 seconds... -------------

  14. INFO ------- Shutting Down ---------------------

  15. INFO ------- Shutdown Complete -----------------

  16.  
  17. Process finished with exit code 0

  18.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Log4j是Java中一款广泛使用的日志记录框架,它提供了丰富的配置选项和灵活的日志输出能力。在Maven项目中,你可以通过依赖管理来集成Log4j,以便在项目中方便地使用其功能。 1. 引入Log4j依赖:在你的`pom.xml`文件中,添加Log4j的基本依赖,例如: ```xml <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.x.y</version> <!-- 请替换为实际版本号 --> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.x.y</version> <!-- 请替换为实际版本号 --> </dependency> ``` 这里,`log4j-api`提供接口定义,`log4j-core`提供实际的日志处理功能。 2. 配置log4j:通常情况下,你需要在项目中创建一个名为`log4j2.xml`或`log4j2.properties`的配置文件,来设置日志的级别、输出格式、输出目的地等。这是一个简单的XML配置示例: ```xml <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> ``` 3. 使用日志:在代码中,你可以通过`org.apache.logging.log4j.Logger`接口获取一个logger实例,然后进行日志记录,例如: ```java import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class MyClass { private static final Logger logger = LogManager.getLogger(MyClass.class); public void myMethod() { logger.info("This is an info message"); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值