2012-08-07 168 views
0

我有一個簡單的基於SOAP的應用程序寫入單獨的日誌。日誌是在jboss/bin/log下創建的,但是它是空的。我將這些Web服務作爲jar文件部署到JBoss AS 6.1中。 log4j.properties位於'src'文件夾的根目錄下。日誌寫入server.log而不是單獨的日誌

package abc.WebServiceSamples; 

import java.io.IOException; 
import java.io.InputStream; 

import java.util.Properties; 

import javax.jws.WebMethod; 
import javax.jws.WebService; 
import javax.ejb.Stateless; 

import org.apache.log4j.Logger; 
import org.apache.log4j.PropertyConfigurator; 

@Stateless 
@WebService(serviceName = "GreetingService") 
public class greeting { 
static final Logger logger = Logger.getLogger(greeting.class); 

public greeting() { 
    super(); 
} 

@WebMethod 
public String welcome(String s1) { 
    String str = "Welcome, " + s1; 

    Properties props = new Properties(); 

    //load from classpath 
    InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("log4j.properties"); 

    // Now pass these properties to PropertyConfigurator 
    try { 
     props.load(inputStream); 
    } catch (IOException e) { 
     e.printStackTrace(System.out); 
    } 
    PropertyConfigurator.configure(props); 

    logger.debug("Sample debug message"); 
    logger.info("Sample info message"); 
    logger.warn("Sample warn message"); 
    logger.error("Sample error message"); 
    logger.fatal("Sample fatal message"); 

    return str; 
} 

}

log4j.properties: 

log4j.rootLogger=INFO 

# AdminFileAppender - used to log messages in the admin.log file. 
log4j.appender.AdminFileAppender=org.apache.log4j.FileAppender 
log4j.appender.AdminFileAppender.File=log/admin.log 
log4j.appender.AdminFileAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.AdminFileAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

# ReportFileAppender - used to log messages in the report.log file. 
log4j.appender.ReportFileAppender=org.apache.log4j.FileAppender 
log4j.appender.ReportFileAppender.File=log/report.log 
log4j.appender.ReportFileAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.ReportFileAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

#log4j.logger.com.vaannila.admin=,AdminFileAppender 
log4j.logger.abc.WebServiceSamples.greeting=,ReportFileAppender 

Java運行命令:

/選擇/ JAVA/bin中/ JAVA -server -Xms128m -Xmx512m -XX:MaxPermSize參數=256米-Dorg.jboss.resolver。 warning = true -Dsun.rmi.dgc.client.gcInterval = 3600000 -Dsun.rmi.dgc.server.gcInterval = 3600000 -Djava.net.preferIPv4Stack = true -Dprogram.name = run.sh -Dlogging.configuration = file: /opt/jboss/bin/logging.properties -Dlog4j.debug = true -Djava.library.path =/opt/jboss/bin/native/lib64 -Djava.endorsed.dirs =/opt/jboss/lib/endorsed -classpath的/ opt/JBoss的/ b在/ run.jar:/opt/java/lib/tools.jar org.jboss.Main -c所有-b 0.0.0.0

拖尾服務器/所有/的server.log:

2012-08- 06 15:21:33,688信息[org.jboss.web.tomcat.service.deployers.TomcatDeployment](HDScanner)deploy,ctxPath =/ejb_ws_greeting
2012-08-06 15:21:50,929 INFO [STDOUT](Finalizer) log4j:完成名爲[OtherAppender]的appender。
2012-08-06 15:21:50,930 INFO [STDOUT](Finalizer)log4j:完成名爲[ReportFileAppender]的appender。
2012-08-06 15:22:37,156 INFO [org.apache.cxf.transport.servlet.AbstractCXFServlet](http-0.0.0.0-8080-1)Servlet運輸工廠已經註冊
2012-08-06 15 :22:37,164 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:解析值爲[INFO]的[root]。
2012-08-06 15:22:37,165信息[標準輸出](http-0.0.0.0-8080-1)log4j:級別標記是[信息]。
2012-08-06 15:22:37,169 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:將根類別設置爲null
2012-08-06 15:22:37,169信息[標準輸出] (http-0.0.0.0-8080-1)log4j:解析值爲[WARN,ReportFileAppender]的[abc.WebServiceSamples.greeting]。
2012-08-06 15:22:37,169信息[標準輸出](http-0.0.0.0-8080-1)log4j:級別標記是[警告]。
2012-08-06 15:22:37,169 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:分類abc.WebServiceSamples.greeting設置爲空
2012-08-06 15:22 :37,169信息[標準輸出](http-0.0.0.0-8080-1)log4j:解析名爲「ReportFileAppender」的appender。
2012-08-06 15:22:37,170信息[標準輸出](http-0.0.0.0-8080-1)log4j:解析「ReportFileAppender」的佈局選項。
2012-08-06 15:22:37,170 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:將屬性[conversionPattern]設置爲[%-4r [%t]%-5p%c%x - %m%n]。
2012-08-06 15:22:37,171 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:「ReportFileAppender」的解析結束。
2012-08-06 15:22:37,171 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:將屬性[file]設置爲[log/report1.log]。
2012-08-06 15:22:37,171 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:setFile調用:log/report1.log,true
2012-08-06 15:22: 37171 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:setFile結束
2012-08-06 15:22:37,171 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:已解析「ReportFileAppender」選項。
2012-08-06 15:22:37,171 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:處理log4j.additivity.abc。WebServiceSamples.greeting = [null]
2012-08-06 15:22:37,172 INFO [STDOUT](http-0.0.0.0-8080-1)log4j:完成配置。
2012-08-06 15:22:37,172 INFO [STDOUT](http-0.0.0.0-8080-1)歡迎,嗨酷
2012-08-06 15:22:37,172 WARN [abc.WebServiceSamples.greeting ](http-0.0.0.0-8080-1)示例警告消息
2012-08-06 15:22:37,172錯誤[abc.WebServiceSamples.greeting](http-0.0.0.0-8080-1)示例錯誤消息
2012-08-06 15:22:37,172 FATAL [abc.WebServiceSamples.greeting](http-0.0.0.0-8080-1)示例致命信息

謝謝。

+0

哪個日誌文件是空的? report.log? – mabbas 2012-08-07 15:48:18

+0

report.log。另外,我編寫了一個簡單的程序來調用相同的Web服務庫,並將日誌寫入文件。所以,我猜它有些事情要做JBoss日誌工作。 thx – 2012-08-08 13:32:07

+0

我懷疑「Category abc.WebServiceSamples.greeting設置爲空」導致所有日誌都轉到server.log。 – 2012-08-09 15:04:51

回答

0

類似的問題的解決方案可以在這裏找到:

https://stackoverflow.com/a/26924040

它基本上排除了模塊org.apache.log4j從部署單元,因爲有可能是Log4j和默認的衝突記錄應用程序服務器的實現。