2014-12-18 18 views
5
-Xss256k 
-Djava.net.preferIPv4Stack=true 
-Dfile.encoding=UTF-8 
-XX:+UseParNewGC 
-XX:+UseConcMarkSweepGC 
-XX:CMSInitiatingOccupancyFraction=75 
-XX:+UseCMSInitiatingOccupancyOnly 
-XX:+DisableExplicitGC 
-XX:+PrintGCDetails 
-XX:+PrintGCDateStamps 
-XX:+PrintGCTimeStamps 
-XX:+PrintClassHistogram 
-XX:+PrintClassHistogramBeforeFullGC 
-XX:+PrintTenuringDistribution 
-XX:+PrintGCApplicationStoppedTime 
-XX:+PrintPromotionFailure 
-XX:PrintFLSStatistics=1 
-verbose:gc 
-XX:GCLogFileSize=64m 
-XX:NumberOfGCLogFiles=2 
-XX:+UseGCLogFileRotation 
-Xloggc:./logs/gc.log 

Yukarıdakiler, benim başvurum için geçtiğim JAVA_OPTS tam listesi. Sorun, gc.log dosyasının, zaman uygulaması başlatıldığında günlükler dizini bulunmuyorsa bazen oluşturulmamasıdır. Ancak gc.log, zaman uygulamasının başlamasına bağlı olarak günlükler dizinin var olduğundan emin olursam her zaman oluşturulur.Xloggc, yol ilk kez mevcut değilse, günlük dosyası oluşturmuyor

Bu yüzden log4j çerçevemden önce bir GC oluşması durumunda günlükler dizinini oluşturmadan önce Xloggc güvenli bir şekilde başarısız olur mu? Günlükler dizinini manuel olarak oluşturmaktan başka bir geçici çözüm var mı?

cevap

2

Bir günlük dosyası oluşturmak için -Xloggc Evet, dizin her zaman olmalıdır. El ile bir dizin oluşturma yapmak en kolay şeydir. Projelerin çoğunda, günlükler dizini her zaman kullanılabilir. Ancak, günlükleri temizlemeniz gerekirse, tüm dosyaları logs dizininde silmenizi, ancak dizini bozulmamış halde bırakmanızı öneririm.

Günlükler dizinini oluşturmak için bir kabuk komut dosyası yazabilir ve sunucunuzu başlatabilirsiniz, ancak tüm sunucunuz yeniden başlatmak için bu betiği standart betik betikleri yerine kullanmalısınız