我在使用在XML log4j配置文件中定义的附加程序进行记录时遇到麻烦。
我在EAR的META-INF文件夹上创建了 jboss-deployment-structure.xml ,没有成功。
在 JBoss的部署,structure.xml 结构为:
<jboss-deployment-structure>
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
<deployment>
<exclusions>
<module name="org.apache.log4j" slot="main"/>
</exclusions>
</deployment>
</jboss-deployment-structure>
我什至尝试编辑我的 standalone.conf.bat 文件并添加以下行:
set "JAVA_OPTS=%JAVA_OPTS% -Dorg.jboss.as.logging.per-deployment=false"
我的应用程序部署是这样的:
-> MyAppEAR.ear
-> META-INF
-> MANIFEST.MF
-> MyAoo.war
-> META-INF
-> MANIFEST.MF
-> jboss-deployment-structure.xml
-> WEB-INF
-> web.xml
-> lib
-> log4j-1.2.17.jar
-> ---
-> classes
-> log4j.xml
-> ...
我注意到以下错误:
我什至尝试从JBOSS 7.1.0迁移到7.1.1
请帮忙!
谢谢
感谢詹姆斯的答复。
我按照您说的做了,并将 jboss-deployment-structure.xml 文件移动到 MyAppEAR.ear / META-
INF
。
我注意到这种方式是例外:
jboss-deployment-structure.xml in subdeployment ignored. jboss-deployment-structure.xml is only parsed for top level deployments.
…不会发生。我不知道这是否意味着文件已解析…我怎么知道?
尽管有这种新行为,我的 log4j.xml 配置文件仍然没有加载,并且使用的记录器仍然是Log4J。
我知道这是因为我写了控制台:
System.out.println(Logger.getRootLogger().getClass().toString())
…并得到:
class org.jboss.logmanager.log4j.BridgeLogger
我也尝试过:
还有其他想法吗?
谢谢
嗨,RedEagle看到我已经测试过的以下配置及其正常工作…
步骤1 :
jboss-as-7.1.1.Final/modules/com/company/mylog/main/
-module.xml
-log4j-1.2.14.jar
Content of module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.company.mylog">
<resources>
<resource-root path="log4j-1.2.14.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
步骤2 现在在my.ear / META-INF /
-jboss-deployment-structure.xml
-MANIFEST.MF
jboss-deployment-structure.xml的内容
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment>
<sub-deployment name="MyWeb.war">
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</sub-deployment>
<sub-deployment name="MyBeans.jar">
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</sub-deployment>
</jboss-deployment-structure>
MANIFEST.MF的内容
Manifest-Version: 1.0
Dependencies: com.company.mylog
步骤3 的MyLogger.java内容
public static Logger getLogger(String name) {
Logger logger= LogManager.getLogger(name);
PropertyConfigurator.configure("log4j.properties"); //Path to log4j.properties as many option available in my case for testing i used static path /home/gyani/log4j.properties
return logger;
}
步骤4 这是log4j.properties
log4j.rootLogger=info,gyani
log4j.appender.gyani=org.apache.log4j.RollingFileAppender
log4j.appender.gyani.File=/home/gyani/myserverlog.log
log4j.appender.gyani.Append=true
log4j.appender.gyani.MaxFileSize=100000KB
log4j.appender.gyani.MaxBackupIndex=10
log4j.appender.gyani.layout=org.apache.log4j.PatternLayout
log4j.appender.gyani.layout.ConversionPattern=[%d{MMM d HH:mm:ss yyyy}] [%-5p] [%c]: %m%n
我试图通过以下教程在我的Web应用程序中配置log4j2。我正在使用glassfish 4.1。1服务器和servlet版本3.1。我可以使用以下配置配置日志功能: log4j。性质 属性文件放在src/main/资源文件夹中 网状物xml 定义文件位置的上下文参数被注释掉。默认情况下,log4j可能会查找名为log4j的文件。财产。不过,我只是想知道指定文件位置的方法是否正确。 我也不确定哪个j
我正在使用log4j2库来管理日志记录过程。我创建了一个名为log4j2的配置文件。包含appender和logger配置的xml。然后,我在每个类中定义了一个记录器 我没有在任何地方指定conf文件的名称,所以我认为库隐式地获取并读取它。 现在,我需要以jar文件的形式提供我的应用程序,所以我需要使配置文件可用,以便用户可以修改和配置它。 在我的例子中,我建议在jar文件级别创建一个XXX文件夹
我尝试了一个显示其他响应的测试用例,我将一步一步地解释它: > 我在我的设备上安装了MDM配置文件,这提示我安装了一个应用程序,并且我成功地安装了它。应用程序已进入“应用程序中的配置文件”部分。 然后我手动删除了应用程序。
我的项目有问题。我们正在使用JBoss7.1.1,我们希望在4.1版中使用envers。版本4.1中的Envers需要版本4.1中的Hibernate。不幸的是,jboss 7.1.1包含较旧的Hibernate和Envers模块。 我有两个选择: 更改JBoss中的模块(放置新的环境 或: 在war中排除JBoss模块并使用WEB-INF/lib中的libs。我使用以下方法排除了模块: 我已经将
我在使用DOMConfigurator的JavaEE Web应用程序中使用Log4j时面临一个问题。我的类路径log4j.jar文件,log4j.xml文件的路径 /WEB-INF/config/log4j.xml. 以下是例外情况: 下面是获取log4j的代码。servlet中的xml文件: 进入网页。xml
我使用log4j(1.2.15)来登录我的应用程序,其中我有两个用于两个不同包(darius.log4j.sql和darius.log4j.net)的文件追加器和一个控制台追加器。其配置如下: 我现在需要的是以编程方式添加一个新的文件appender,如果出现特定的数据组合。我知道如何定义这个新的文件appender(前C),但我不知道如何设置级别和新的appender到第三个包: 其中C是第三个