0
我正在創建一個我需要提供給客戶端的jar文件,但是我的客戶端要求爲jar文件提供單獨的記錄器,因爲這是在執行一些集成工作。需要爲jar文件創建單獨的日誌文件嗎?
任何人都可以建議如何創建只有一個jar文件的記錄器,我可以把log4j.properties放在同一個jar文件中。
我正在使用網絡邏輯服務器。我們不會部署這個jar文件,而是將它保留在域lib文件夾中。
感謝
我正在創建一個我需要提供給客戶端的jar文件,但是我的客戶端要求爲jar文件提供單獨的記錄器,因爲這是在執行一些集成工作。需要爲jar文件創建單獨的日誌文件嗎?
任何人都可以建議如何創建只有一個jar文件的記錄器,我可以把log4j.properties放在同一個jar文件中。
我正在使用網絡邏輯服務器。我們不會部署這個jar文件,而是將它保留在域lib文件夾中。
感謝
如果屬性文件是在罐子裏,那麼你可以做這樣的事情:
Properties props = new Properties();
props.load(getClass().getResourceAsStream("/log4j.properties"));
PropertyConfigurator.configure(props);
上述假定log4j.properties是在JAR文件的根文件夾。
如果這不適合在這種情況下,你需要工作,那麼你可以隨時使用:
-Dlog4j.configuration=log4j_for_some_jar.properties
如果其他應用程序正在使用的Log4j爲好。較容易的方法是隻配置你的log4j的文件從你的類在你的罐子送什麼東西給一個新的日誌文件,像這樣:
log4j.rootLogger=ERROR, logfile
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.datePattern='-'dd'.log'
log4j.appender.logfile.File=log/radius-prod.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n
log4j.logger.foo.bar.Baz=DEBUG, myappender
log4j.additivity.foo.bar.Baz=false
log4j.appender.myappender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myappender.datePattern='-'dd'.log'
log4j.appender.myappender.File=log/access-ext-dmz-prod.log
log4j.appender.myappender.layout=org.apache.log4j.PatternLayout
log4j.appender.myappender.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n
感謝你好,如果我們對這個創建靜態函數,則「的getClass( ).getResourceAsStream(「/ log4j.properties」)「行不會工作,我們可以爲此做任何其他事情。 – Pedantic
您可以使用類名稱,但並不總是理想的,但可以執行'MyClass.class.getResourceAsStream(「/ log4j.properties」)''。如果你不知道什麼原因,那麼你需要使用反射或堆棧跟蹤 - 即getStackTrace - Thread.currentThread()。getStackTrace()[0] .getClass()。getResourceAsStream(「/ log4j.props」)'你將不得不嘗試確定你想要的確切索引。 – NightWolf