WebLogic 12C服务器无法打印log4j日志问题,与log4j日志动态打印记录

环境windows
服务器weblogic 12C
日志log4j或log4j2

叙述:

项目打印日志,要求需要用到log4j或log4j2,服务器用weblogic 12c,同时实现动态打印(使用环境变量,不在log4j.properties文件中写死路径)

当项目在tomcat运行的时候log4j的日志打印很正常,但是部署到weblogic时发现日志文件可以打印出来,却没有内容。

 

解决日志文件没有内容问题

查阅资料后发现,因为weblogic已经自带了slf4j的模块,与应用中的logback冲突。

原文:https://blog.csdn.net/qq_37181774/article/details/79377958

 

所以在项目的WEB-INF文件夹下添加【weblogic.xml】,解决冲突问题。

<?xml version="1.0" encoding="UTF-8"?>

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
    <session-descriptor>
        <cookie-path>/</cookie-path>
    </session-descriptor>    

    <jsp-descriptor>
        <keepgenerated>true</keepgenerated>
        <page-check-seconds>60</page-check-seconds>
        <precompile>true</precompile>
        <precompile-continue>true</precompile-continue>
    </jsp-descriptor>

    <container-descriptor>
        <optimistic-serialization>true</optimistic-serialization>        
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
         <prefer-application-packages>  
           <package-name>org.slf4j</package-name>  
        </prefer-application-packages>  

    </container-descriptor>        
</weblogic-web-app>

 

log4j与log4j2日志动态打印

实现动态打印,主要是使用配置文件中的打印输出路径不能写死,而是使用系统环境变量,这样就能在设置环境,或者修改系统环境变量下,动态打印日志了

log4j.properties(打印路径使用环境变量 ${logPath})

log4j2.xml(打印路径使用环境变量 ${sys:logPath})

同时修改weblogic的执行文件..\user_projects\domains\base_domain\bin\startWebLogic.cmd

linux环境下应该是修改startWebLogic.sh执行脚本

注释:-D代表添加环境变量

-DlogPath=E:\         代表添加环境变量名为logPath,数值为E:\ 的环境变量,这样就能实现log4j或log4j2的日志文件动态打印了。

如果解决了大家的问题,希望大家多多评论,或者有什么疑问也可以评论出来,大家一起探讨!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值