log4j2指定日志文件路径到工程路径

1、pom.xml中配置log4j2所使用的jar包

<!-- log4j2 -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>${log4j}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-web</artifactId>
            <version>${log4j}</version>
        </dependency>

2、在classpath目录中创建log4j2.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" monitorInterval="600">
    <!--先定义所有的appender -->
    <appenders>
        <!--输出控制台 -->
        <Console name="Console" target="SYSTEM_OUT">
            <ThresholdFilter level="debug" />
            <PatternLayout charset="GBK"
                pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
        </Console>
        <!--输出到文件-->
        <File name="LogFile" fileName="${web:rootDir}/logs/app.log" advertise="true">
            <PatternLayout pattern="%d %p %C{1.} [%t] %m%n" />
        </File>
    </appenders>

    <loggers>
        <!--建立一个默认的root的logger -->
        <root level="info">
            <appender-ref ref="LogFile" />
            <appender-ref ref="Console" />
        </root>
    </loggers>
</Configuration>

3、web.xml中添加如下信息

    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>webApp.root</param-value>
    </context-param>
    <listener>
        <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
    </listener>
时间: 2024-10-17 18:16:39

log4j2指定日志文件路径到工程路径的相关文章

log4j2.xml日志文件设置文件路径

笔者最近的项目里使用了spring,spring通过web.xml配置监听器,在web启动时web.root系统变量,以供其他变量使用,例如 在属性文件里使用${web.root}以取得完整路径,项目里使用了log4j2,在设置文件路径的时候也尝试用${web.root}却始终无法 获得属性值,创建的文件夹名字叫${web.root},显然这不符合实际工作环境需要.网上也有${sys:web.root}的说法. 也只会创建${sys:web.root}文件夹,后来在官网上找到相关设置方法Look

执行系统命令并且将输出写到指定日志文件的shell脚本(2)

上一篇是个简单的可以执行并且写入日志的脚本,但是如果放到生产环境上就显得太粗糙了,所以需要进一步的优化: #! /bin/bash if [ -d "/opt/bmc" ] ; then if [ -f "/opt/bmc/usysfault.log" ] ; then { date +"%Y-%m-%d %H:%M:%S" /usr/lpp/diagnostics/bin/usysfault #要执行的命令的绝对路径 } > /opt/b

【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割

原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>logback</contextName> <!--定义日志文件的存储地址 勿在 LogBac

使用logrotate对MySQL指定日志文件执行按天轮转备份

根据自己的需要可以对MySQL的相关日志文件(错误日志.通用查询日志文件和慢查询日志文件)进行按天的转储,并只保留指定天数的备份文件,下面是一个例子: 1).安装 crond 服务 (如果未安装   yum install logrotate crontabs) rpm  -qa  |  grep crontabs yum  install  crontabs chkconfig  crond  --list   #如果未设置为自动重启这执行如下命令修改 chkconfig  crond  on

linux后台启动springboot并指定日志文件名称

如果用nohup启动jar包的话,默认的日志文件就是nohup.out,那么如果启动多个jar包的话,看日志文件就麻烦了,因为他们都会写入到nohup.out文件中. 所以我们来指定一下不同jar包的日志文件名: [[email protected] ~]$ mkdir log [[email protected] ~]$ nohup java -jar dianyixia-0.0.1-SNAPSHOT.jar > log/dianyixia.log & [1] 5861 [[email p

log4j配置文件动态指定日志文件名称

我们在项目当中经常会使用log4j进行日志记录,偶尔会遇到一些要求,比如日志文件名称按照启动参数动态配置,而不去修改log4j.xml,比较简单的一种做法是,通过设置系统属性的方式实现,代码: 1 if(args.length>=0){ 2 System.setProperty("log4fFile", args[0]); 3 }else{ 4 System.setProperty("log4fFile","log/runtime.log"

Shell执行将脚本里的变量打印到指定日志文件

首先需要定位获取任务的运行日志或者报错信息,才能定位问题. 通过shell调用有些脚本的话,日志信息会打印在shell里.不过也有用户在shell里调用正常,但是到crontab调用的时候就出错并且没日志了. 针对这种情况,可以在crontab里把任务执行的输出记录下来,后续出了问题可以到日志文件里获取任务的日志.可以参考:  abc -f xxx.sql >> /home/admin/logs/xxx.log 2>&1  待续...

动态指定log4net日志文件名称

如果是希望日志文件按常见的日期格式动态命名,没什么好说的,直接修改app.config <param name="DatePattern" value="yyyyMMdd".log"" /> 但我遇到的一个场景,是同一个exe要运行多个实例,如何分别写入不同的日志文件呢? 参考过 动态修改log4net组件的日志文件名 运行的结果是新的 log文件确实产生了,但是日志记录并不能写入进去,加之年代久远,也就没有跟原作者讨论的激情了 后来

C#日志文件

写日志文件是一个很常用的功能,以前都是别人写好的,直接调用的,近期写了一个小工具,因为比较小,所以懒得引用dll文件了,直接上网找了一个,很方便,现在记录下 public class LogClass { /**/ /// <summary> /// 写入日志文件 /// </summary> /// <param name="input"></param> public static void WriteLogFile(string i