- 下载log4j的jar包,我下载的apache-log4j-2.X-bin.zip。
- 将下载解压后的 log4j.jar , log4j-core-2XXX.jar, log4j-api-2XXX.jar拷贝到 Maven项目-->jars目录下
- 在Maven中将step2中的三个jar包添加到项目中。右键单击maven项目-->Open Module setting, 点击“添加”按钮,选择这三个jar包,然后应用即可生效。
- 创建并配置log4j2.xml如下,并将文件拷贝到Maven项目-->Config目录下
<?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"/>--> <!--<!–开启warn级别日志–>--> <!--<AppenderRef ref="RollingFileWarn"/>--> <!--<!–开启error级别日志–>--> <!--<AppenderRef ref="RollingFileError"/>--> </Root> </Loggers> </Configuration>
创建并初始化log4j.java,此文件应放置在Maven项目-->src-->main-->java目录下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如下: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
Windows上如何下载并在Maven上使用log4j
猜你喜欢
转载自blog.csdn.net/qq_33744949/article/details/79693967
今日推荐
周排行