Windows上如何下载并在Maven上使用log4j

  1.  下载log4j的jar包,我下载的apache-log4j-2.X-bin.zip
  2.  将下载解压后的 log4j.jar , log4j-core-2XXX.jar,  log4j-api-2XXX.jar拷贝到 Maven项目-->jars目录下
  3.  在Maven中将step2中的三个jar包添加到项目中。右键单击maven项目-->Open Module setting, 点击“添加”按钮,选择这三个jar包,然后应用即可生效。
  4. 创建并配置log4j2.xml如下,并将文件拷贝到Maven项目-->Config目录下
  5. <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN" monitorInterval="30" strict="true" schema="Log4J-V2.2.xsd">
        <Properties>
            <Property name="filename">${date:yyyy-MM-dd}</Property>
            <!--
                    %d{yyyy-MM-dd HH:mm:ss, SSS} : 日志生产时间
                    %p : 日志输出格式
                    %c : logger的名称
                    %m : 日志内容,即 logger.info("message")
                    %n : 换行符
                    %C : Java类名
                    %L : 日志输出所在行数
                    %M : 日志输出所在方法名
                    hostName : 本地机器名
                    hostAddress : 本地ip地址
                 -->
            <Property name="pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5level] - %l - %msg%n</Property>
        </Properties>
    
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5level] %logger{36} - %l - %msg%n"/>
            </Console>
            <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用-->
            <File name="MyFile" fileName="./log/binance.log" append="true">
                <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %F %L - %msg%n"/>
            </File>
            <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
            <RollingFile name="RollingFileInfo" fileName="${sys:user.home}/logs/${filename}-info.log"
                         filePattern="${sys:user.home}/logs/$${date:yyyy-MM-dd}/info-%d{yyyy-MM-dd}-%i.log">
                <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout pattern="${pattern}"/>
                <Policies>
                    <!-- 每24小时更新一次 -->
                    <TimeBasedTriggeringPolicy modulate="true" interval="24"/>
                    <SizeBasedTriggeringPolicy size="10MB"/>
                </Policies>
                <DefaultRolloverStrategy max="2"/>
            </RollingFile>
            <RollingFile name="RollingFileWarn" fileName="${sys:user.home}/logs/${filename}-warn.log"
                         filePattern="${sys:user.home}/logs/$${date:yyyy-MM-dd}/info-%d{yyyy-MM-dd}-%i.log">
                <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout pattern="${pattern}"/>
                <Policies>
                    <!-- 每24小时更新一次 -->
                    <TimeBasedTriggeringPolicy modulate="true" interval="24"/>
                    <SizeBasedTriggeringPolicy size="10 MB"/>
                </Policies>
                <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
                <DefaultRolloverStrategy max="2"/>
            </RollingFile>
            <RollingFile name="RollingFileError" fileName="${sys:user.home}/logs/${filename}-error.log"
                         filePattern="${sys:user.home}/logs/$${date:yyyy-MM-dd}/error-%d{yyyy-MM-dd}-%i.log">
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout pattern="${pattern}"/>
                <Policies>
                    <!-- 每24小时更新一次 -->
                    <TimeBasedTriggeringPolicy modulate="true" interval="24"/>
                    <SizeBasedTriggeringPolicy size="10 MB"/>
                </Policies>
                <DefaultRolloverStrategy max="2"/>
            </RollingFile>
        </Appenders>
        <Loggers>
            <!--<Logger name="sel4jTest" level="info">-->
            <!--<AppenderRef ref="MyFile"/>-->
            <!--</Logger>-->
            <logger name="org.springframework" level="FATAL"></logger>
            <logger name="org.apache.activemq" level="FATAL"></logger>
            <Root level="info">
                <!--<appender-ref ref="Console"/>-->
             <appender-ref ref="MyFile"/>
                <appender-ref ref="RollingFileInfo"/>
                <appender-ref ref="RollingFileWarn"/>
                <appender-ref ref="RollingFileError"/>
                <!--开启info级别日志-->
                <!--<AppenderRef ref="RollingFileInfo"/>-->
                <!--&lt;!&ndash;开启warn级别日志&ndash;&gt;-->
                <!--<AppenderRef ref="RollingFileWarn"/>-->
                <!--&lt;!&ndash;开启error级别日志&ndash;&gt;-->
                <!--<AppenderRef ref="RollingFileError"/>-->
            </Root>
        </Loggers>
    </Configuration>
    创建并初始化log4j.java,此文件应放置在Maven项目-->src-->main-->java目录下
  6. import org.apache.logging.log4j.core.config.ConfigurationSource;
    import org.apache.logging.log4j.core.config.Configurator;
    
    import java.io.File;
    import java.io.FileInputStream;
    
    public class log4j {
        public static void initialLog(){
            try{
                // Config配置的路径为log4j2.xml所在的路径
                File config = new File(System.getProperty("user.dir") + "\\config\\log4j2.xml");
                ConfigurationSource source = new ConfigurationSource(new FileInputStream(config), config);
                Configurator.initialize(null, source);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
     安装配置完成,测试log4j ,Log4jTest.java如下:
  7. import org.apache.logging.log4j.LogManager;
    
    public class Log4jTest {
        private static Logger log = Logger.getLogger(Log4jTest.class);
        public void test() {
            String msg = "Opened database successfully";
            LogManager.getLogger().info(msg);
            LogManager.getLogger().debug("debug");
            LogManager.getLogger().warn("warn");
            LogManager.getLogger().fatal("fatal");
            LogManager.getLogger().error("error");
        }
    }
    运行Log4jTest.java, 打开log-->binance.log, 测试log日志能否输出到Maven项目-->log-->binance.log文件中.
    2018-03-24 21:38:03.802 [main] INFO  Log4jTest.java 11 - Opened database successfully
    2018-03-24 21:38:03.802 [main] DEBUG  Log4jTest.java 12 - debug
    2018-03-24 21:38:03.802 [main] WARN  Log4jTest.java 13 - warn
    2018-03-24 21:38:03.802 [main] FATAL  Log4jTest.java 14 - fatal
    2018-03-24 21:38:03.802 [main] ERROR  Log4jTest.java 15 - error

猜你喜欢

转载自blog.csdn.net/qq_33744949/article/details/79693967