sebeple
Teşekkür logback yapılandırma dosyası derlenmiş asla gerektiğidir. Logback ile çalışma zamanında GroovyShell
veya benzer bir mekanizma üzerinden okunur.
Çözüm, proje ayarlarınıza bağlıdır.
import static ch.qos.logback.classic.Level.INFO
import static ch.qos.logback.classic.Level.DEBUG
import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.ConsoleAppender
appender("CONSOLE", ConsoleAppender) {
encoder(PatternLayoutEncoder) {
pattern = "%-4relative [%thread] - %msg%n"
}
}
root(DEBUG, ["CONSOLE"])
Ben Gradle inşa atlanmış:
import org.slf4j.Logger
import org.slf4j.LoggerFactory
class Test {
static Logger LOG = LoggerFactory.getLogger(Test.class)
static void main(String[] args) {
LOG.debug("Test")
}
}
İkinci dosya src/main/resources/logback.groovy
geçerli:
İlk dosya src/main/groovy/Test.groovy
şudur: Bir proje için bir çözüm Maven Standard Directory Layout aşağıdaki Gradle ile inşa bulacaksınız ardından dosya (build.gradle
).
Standart dizin düzeni, src/main/groovy
'daki her dosyanın derlendiğini, src/main/resources
'daki her şeyin sınıf yoluna dahil edildiğini garanti eder. Bu yüzden LogBack bu dosyayı çalışma zamanında bulabilir.
Güncelleştirme: Sorunu yeterince dikkatlice okumadım. Her iki dosya aynı dizinde olduğunda sorunu çözemedim ve bunu groovy Test.groovy
aracılığıyla başlatıyorum. Bence bu mümkün değil. Groovy komutu daima geçerli dizinde ve verilen sınıf yolundaki tüm groovy dosyalarını derler.
Nasıl betik işe yaramaz? Sebebini açıkla. Komut dosyanızı çalıştırmak için doğru çözüm olduğunu düşünüyorum. .xml yapılandırmasına geri dönme. – Archer