日志_log4j:自定义log4j日志文件存放路径_wildfly部署后log4j对应的log在哪里-程序员宅基地

技术标签: Java  log4j  

话说这是第一次自己配置log4j,以前都是拿来就用,完全没想过这个问题。
log4j的配置文件还是比较好用的,只要编译后log4j.properties文件是在classes目录下,它就会自动查找这个文件。
把记录日志放到文件中也是比较好配置的,问题是这个日志文件在哪儿,死活没找到?这让我有些慌张,如果不自己定义路径,将它控制住,就会觉得有些不舒服。
在网上搜了大半天,关于log4j讲解的文章可谓是多如牛毛,然后就在这些牛毛中提取出了我自己觉得相对好用一点的方法。

一:写监听

1.写一个日志监听类,让它实现ServletContextListener,在此类中定义日志文件的存放路径。Log4jListener.java

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class Log4jListener implements ServletContextListener{
    

    public void contextDestroyed(ServletContextEvent arg0) {
        System.out.println("this is last destroyeed");    
    }

    public void contextInitialized(ServletContextEvent arg0) {
         String log4jdir = arg0.getServletContext().getRealPath("/");
         System.setProperty("log4jdir", log4jdir);
    }

}

2.将监听配置在web.xml文件中,容器一启动就开启监听。web.xml

<listener>  
    <listener-class>com.adtech.jyjc.utils.Log4jListener</listener-class>  
  </listener>

3.在log4j中引用已定义的路径。log4j.properties

log4j.rootLogger=INFO,Console,logfile

#Console  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n  

#file
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=${log4jdir}/WEB-INF/logs/jyjc.log      
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m %n


log4j.logger.java.sql.ResultSet=DEBUG  
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG  
log4j.logger.java.sql.Statement=DEBUG  
log4j.logger.java.sql.PreparedStatement=DEBUG    

二:写servlet

与第一种方法相同,略!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/youyouxiaoyige/article/details/54089934

智能推荐

用混淆矩阵计算kappa系数_混淆矩阵卡帕系数怎么算-程序员宅基地

文章浏览阅读1w次,点赞10次,收藏34次。从一篇论文——融合注意力机制和高效网络的糖尿病视网膜病变识别与分类,看到人家除了特异性、敏感性、准确率、混淆矩阵以外,还用了加权kappa系数,所以了解一下kapp系数的知识,加权kappa还没找到更好的资料。。。资料来源于百度百科词条——kappa系数Kappa系数用于一致性检验,也可以用于衡量分类精度,但kappa系数的计算是基于混淆矩阵的.kappa系数是一种衡量分类精度的指标。它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类地表真实像元总数与该类中被_混淆矩阵卡帕系数怎么算

TouchGFX 控件附加 ClickListener 功能的方法介绍-程序员宅基地

文章浏览阅读705次,点赞10次,收藏20次。模板一般分为函数模板和类模板。函数模板我们这里不做赘述,重点关注 TouchGFX Mixins 类模板。TouchGFX 的 Mixins 类模板用于拓展控件的功能,目前 TouchGFX v4.20.0 中有四个 Mixin 功能,分别是 Draggable、ClickListener、FadeAnimator 和MoveAnimator,分别为控件增添相关功能。如图 1 (TouchGFX Designer Mixins 功能)所示,本文主要针对 ClickListener 做具体介绍。

C语言中->含义,比如说 p=p->next_c语言->next-程序员宅基地

文章浏览阅读9w次,点赞467次,收藏1.7k次。注:本答案来自百度知道 jiajuehorse->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.举个例子:struct Data{int a,b,c;}; /*定义结构体*/struct Data * p..._c语言->next

2019江西省赛ccpc题解_2019江西ccpc d题-程序员宅基地

文章浏览阅读672次。题号不分前后,后续接着补题,写一些自己感悟,及心得。String传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6572Avin has a string. He would like to uniform-randomly select four characters (selecting the same character is allowe..._2019江西ccpc d题

D2Admin基本使用_d2admin 文档-程序员宅基地

文章浏览阅读4.2w次,点赞5次,收藏17次。D2Admin基本使用目录d2-admin基本使用1 安装1.1 全局安装 d2-admin1.2 创建项目1.3 启动项目1.4 注意事项2 修改框架 title 和 logo2.1 修改 title2.2 修改 logo3 图表库3.1 常用的图表库3.2 安装v-charts3.3 导入项目3.4 简单举例3.5 注意事项4 CURD插件(表格)4.1 安装4.2 导入项目4.3 图表使用4.4 注意事项5 定义数据API5._d2admin 文档

阿里重磅开源FaceChain:让每个人AIGC出个人写真!-程序员宅基地

文章浏览阅读650次。点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【目标检测和Transformer】交流群在CVer微信公众号后台回复:FaceChain,可以下载本论文pdf和代码本文简要介绍最新arxiv文章“FaceChain: A Playground for Identity-Preserving Portrait Generation”。在AIGC的实际应用中,..._阿里的 face生成

随便推点

微软官网获取win10镜像_微软镜像-程序员宅基地

文章浏览阅读347次。2、打开镜像升级软件,按照以下步骤进行设置,设置完成后即可获得相应的镜像文件;,找到工具下载按钮,进行工具下载;选择下载路径,进行下载即可。_微软镜像

基于Ubuntu+FFmepg源码通过Nginx+Live555服务器完成RTMP+RTSP推H264流_live555 rtmp-程序员宅基地

文章浏览阅读744次。最近项目需要支持RTMP+RTSP推流功能,最终版本是在RK平台上显示,这里提供一个ubuntu系统上的简单实现demo(主要C实现)。实现方式:RTMP:将完整H264帧数据发布到Nginx服务器,通过VLC播放器拉流显示。RTSP:将完整H264帧数据发布到Live555服务器,通过VLC播放器拉流显示。Nginx:服务器是通过网络读取数据流Live555:服务器是通过文件读取数据流(此demo用到fifo有名管道)完整DEMO工程:https://download.csdn.net/dow_live555 rtmp

云原生Service Mesh服务网格简单介绍-程序员宅基地

文章浏览阅读1.2k次,点赞24次,收藏17次。Service Mesh是一个用于处理服务间通信的基础设施层,旨在实现云原生应用复杂服务拓扑中的可靠请求传递。其基本构成是一组与应用一起部署的轻量级网络代理,这些代理对应用来说是透明的。Service Mesh通过统一的方式来控制和处理服务间的通信,为微服务架构中的服务发现、负载均衡、故障恢复等提供了解决方案。

03-git tag标签;git push--tags; git branch分支; git merge,git rebase整合分支提交-程序员宅基地

文章浏览阅读1.6k次。git分支、标签标签 git tag-a-d标签 git taggit tag 为特定的提交commit添加标签tag【额外标记 指示有用信息】git tag v1 SHA123将这个【标签命名为 v1】,并且明确地让它指向【提交记录 SHA123】,如果你不指定提交记录,Git 会用 HEAD 所指向的位置。git tag # 列出所有标签-agit tag -a v1...

CVE漏洞库网址_cve漏洞官网-程序员宅基地

文章浏览阅读1k次。CVE漏洞库URL_cve漏洞官网

SpringBoot在使用mybatis逆向工程时出现错误UnsatisfiedDependencyException-程序员宅基地

文章浏览阅读302次。***SpringBoot在使用mybatis逆向工程时出现错误UnsatisfiedDependencyException***org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘com.demo.MybatisApplicationTests’: Unsatisfied dependency expressed through field ‘tUserMapp

推荐文章

热门文章

相关标签