我看到奇怪的行爲使用log4j,我完全難住。這是我第一次將它用於BlazeDS,我希望這是我錯過的一個小問題。log4j日誌記錄到控制檯但不是文件blazeDS
在這個Web應用程序中,我使用log4j從2個java類以及blazeDS進行日誌記錄。我通過org.springframework.flex.core.CommonsLoggingTarget將BlazeDS掛接到commons-logging,然後使用log4j作爲基礎的日誌記錄器。
我已經在blazeds記錄器下爲「Console」和「MyFile」設置了appender,而控制檯輸出按預期工作時,沒有任何內容寫入MyFile。該文件實際上已創建,但保持在0KB。另一方面,我的兩個java類對控制檯及其滾動文件都記錄得很好。我在本地測試和部署到Tomcat時都看到了這種行爲。
最後一個細節 - 在本地測試時,我將MyFile路徑更改爲絕對路徑,並且看到文件被附加到了後面。這會讓我相信這是相對路徑的問題,但它對我的java日誌記錄工作正常。
commons-logging.properties:
org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
的log4j.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="trace" debug="true">
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<RollingFile name="RollingFile" fileName="logs/ImpactTradeQuery.log"
filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="25 MB"/>
</Policies>
<DefaultRolloverStrategy max="25"/>
</RollingFile>
<File name="MyFile" immediateFlush="true" fileName="logs/app.log">
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
</File>
</appenders>
<loggers>
<root level="trace">
<appender-ref ref="Console"/>
</root>
<logger name="flex.samples.trade.tradeService" level="trace" additivity="False">
<appender-ref ref="RollingFile"/>
<appender-ref ref="Console"/>
</logger>
<logger name="flex.samples.ConnectionHelper" level="trace" additivity="False">
<appender-ref ref="RollingFile"/>
<appender-ref ref="Console"/>
</logger>
<logger name="blazeds" level="trace" additivity="True">
<appender-ref ref="MyFile"/>
<appender-ref ref="Console"/>
</logger>
</loggers>
</configuration>
服務-config.xml文件:
<logging>
<target class="flex.messaging.log.ConsoleTarget" level="Error">
<properties>
<prefix>[BlazeDS] </prefix>
<includeDate>false</includeDate>
<includeTime>false</includeTime>
<includeLevel>false</includeLevel>
<includeCategory>false</includeCategory>
</properties>
<filters>
<pattern>Endpoint.*</pattern>
<pattern>Service.*</pattern>
<pattern>Configuration</pattern>
</filters>
</target>
<target class="org.springframework.flex.core.CommonsLoggingTarget" level="All">
<properties>
<categoryPrefix>blazeds</categoryPrefix>
</properties>
<filters>
<pattern>Endpoint.*</pattern>
<pattern>Service.*</pattern>
<pattern>Configuration</pattern>
</filters>
</target>
</logging>
剛剛遇到同樣的問題。我目前正在研究一個struts2 web應用程序,並且無法將struts正確記錄到文件中。我已經2天試圖絕望地修復它,現在幸運地找到了你的答案。很高興你寫下來!非常感謝你,包括'log4j-jcl'依賴性解決了這個問題。一百萬再次感謝:) – JorgeGRC