• Log4j maven依赖配置


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

           <!--日志 start-->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.25</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.25</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>1.7.25</version>
                <scope>test</scope>
            </dependency>
            <!--日志end-->

    log4j.properties配置样例如下

    ### set log levels ###
    log4j.rootLogger=DEBUG
    
    ### direct log messages to stdout ###
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    log4j.appender.A1.Target=System.out
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%-2p %m%n
    
    ### direct messages to file framework.log ###
    log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
    ##log4j.appender.A2.File=D:/logs/resmanm.log
    log4j.appender.A2.DatePattern='.'yyyy-MM-dd
    log4j.appender.A2.layout=org.apache.log4j.PatternLayout
    log4j.appender.A2.layout.ConversionPattern=%-5p(%10c{1}) %m%n
    
    ### application log config ###
    #log4j.logger.com.linkage=ERROR,A2
    log4j.logger.com.ch1=DEBUG,A1,A2
    ##log4j.logger.org.quartz.impl.StdSchedulerFactory=DEBUG,A1,A2

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

    package com.ch1;
    
    import org.quartz.*;
    import org.quartz.impl.StdSchedulerFactory;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.util.Date;
    
    import static org.quartz.DateBuilder.evenMinuteDate;
    
    public class SimpleExample {
    
       public void run () throws SchedulerException {
           Logger log = LoggerFactory.getLogger(SimpleExample.class);
    
           log.info("------- Initializing ----------------------");
           SchedulerFactory sf = new StdSchedulerFactory();
           Scheduler sched = sf.getScheduler();
           log.info("------- Initialization Complete -----------");
           // computer a time that is on the next round minute
           Date runTime = evenMinuteDate(new Date());
    
           log.info("------- Scheduling Job  -------------------");
           // define the job and tie it to our HelloJob class
           JobDetail job = JobBuilder.newJob(HelloJob.class)
                                     .withIdentity("job1","group1").build();
    
           // Trigger the job to run on the next round minute
           Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1")
                   .startAt(runTime).build();
    
           // Start up the scheduler (nothing can actually run until the
           // scheduler has been started)
    
           sched.start();
           log.info("------- Started Scheduler -----------------");
           // wait long enough so that the scheduler as an opportunity to
           // run the job!
           log.info("------- Waiting 65 seconds... -------------");
           try {
               // wait 65 seconds to show job
               Thread.sleep(65L * 1000L);
           } catch (InterruptedException e) {
               e.printStackTrace();
           }
    
           // shut down the scheduler
           log.info("------- Shutting Down ---------------------");
           sched.shutdown(true);
           log.info("------- Shutdown Complete -----------------");
       }
    
    
        public static void main(String[] args) throws SchedulerException {
            SimpleExample example = new SimpleExample();
            example.run();
        }
    }

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

    C:Javajdk1.8.0_144injava "-javaagent:D:Program FilesJetBrainsIntelliJ IDEA 2017.2.1libidea_rt.jar=56553:D:Program FilesJetBrainsIntelliJ IDEA 2017.2.1in" -Dfile.encoding=UTF-8 -classpath C:Javajdk1.8.0_144jrelibcharsets.jar;C:Javajdk1.8.0_144jrelibdeploy.jar;C:Javajdk1.8.0_144jrelibextaccess-bridge-64.jar;C:Javajdk1.8.0_144jrelibextcldrdata.jar;C:Javajdk1.8.0_144jrelibextdnsns.jar;C:Javajdk1.8.0_144jrelibextjaccess.jar;C:Javajdk1.8.0_144jrelibextjfxrt.jar;C:Javajdk1.8.0_144jrelibextlocaledata.jar;C:Javajdk1.8.0_144jrelibext
    ashorn.jar;C:Javajdk1.8.0_144jrelibextsunec.jar;C:Javajdk1.8.0_144jrelibextsunjce_provider.jar;C:Javajdk1.8.0_144jrelibextsunmscapi.jar;C:Javajdk1.8.0_144jrelibextsunpkcs11.jar;C:Javajdk1.8.0_144jrelibextzipfs.jar;C:Javajdk1.8.0_144jrelibjavaws.jar;C:Javajdk1.8.0_144jrelibjce.jar;C:Javajdk1.8.0_144jrelibjfr.jar;C:Javajdk1.8.0_144jrelibjfxswt.jar;C:Javajdk1.8.0_144jrelibjsse.jar;C:Javajdk1.8.0_144jrelibmanagement-agent.jar;C:Javajdk1.8.0_144jrelibplugin.jar;C:Javajdk1.8.0_144jrelib
    esources.jar;C:Javajdk1.8.0_144jrelib
    t.jar;E:cBSS微服务demoquartz_test	argetclasses;C:Usersyulei.m2
    epositoryorgquartz-schedulerquartz2.2.3quartz-2.2.3.jar;C:Usersyulei.m2
    epositoryc3p0c3p0.9.1.1c3p0-0.9.1.1.jar;C:Usersyulei.m2
    epositoryorgquartz-schedulerquartz-jobs2.2.3quartz-jobs-2.2.3.jar;C:Usersyulei.m2
    epositorylog4jlog4j1.2.17log4j-1.2.17.jar;C:Usersyulei.m2
    epositoryorgslf4jslf4j-api1.7.25slf4j-api-1.7.25.jar;C:Usersyulei.m2
    epositoryorgslf4jslf4j-log4j121.7.25slf4j-log4j12-1.7.25.jar com.ch1.SimpleExample
    log4j:WARN File option not set for appender [A2].
    log4j:WARN Are you using FileAppender instead of ConsoleAppender?
    log4j:ERROR Either File or DatePattern options are not set for appender [A2].
    log4j:ERROR No output stream or file set for the appender named [A2].
    INFO ------- Initializing ----------------------
    log4j:WARN No appenders could be found for logger (org.quartz.impl.StdSchedulerFactory).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    INFO ------- Initialization Complete -----------
    INFO ------- Scheduling Job  -------------------
    INFO ------- Started Scheduler -----------------
    INFO ------- Waiting 65 seconds... -------------
    INFO ------- Shutting Down ---------------------
    INFO ------- Shutdown Complete -----------------
    
    Process finished with exit code 0
  • 相关阅读:
    JAVA 框架
    npm安装超时,使用淘宝镜像
    使用vite搭建Vue3项目
    前端常用框架
    vue发布自己的组件库-vue3
    vue2升级vue3-基础教程
    Navicat Premium 15破解失败解决方案
    大屏
    vue使用高德地图
    vue生命周期及钩子函数
  • 原文地址:https://www.cnblogs.com/longronglang/p/8675793.html
Copyright © 2020-2023  润新知