java - Spring boot 读取 放在 jar 包外的,log4j 配置文件,系统有创建日志文件,不写入日志信息。
阿神
阿神 2017-04-18 10:55:51
0
3
1558

如下图所示,运行的jar 包和 log4j 的配置文件放在同一个目录,jar包内没有任何配置文件:

在spring boot 框架的 main 方法中,通过下面这种方式,加载jar 包外的log4j配置文件

log4j配置文件的输出位置如下:

运行java -jar gf-mfile.jar 之后,控制台有info 日志信息,如下图:


系统也能够创建 micofile.log 日志文件,但是,文件为null,0字节,里面没有任何数据,info 日志信息没有写入文件中,如下图:

问题:
如果,我将log4j配置文件 打到jar 包中,如下图:

执行jar,日志文件是能够生成日志信息的。我把log4j配置文件,放到和jar 包同级目录就只创建日志文件不写入日志信息了。

为什么配置文件放到jar包外,日志文件中没有内容? 请大神赐教,感激不尽……
(本人推测,是否是main方法中的读取,log4j 配置文件的代码有问题,如果是这样应该怎么修改?)

阿神
阿神

闭关修行中......

membalas semua(3)
黄舟

Anda juga perlu menyemak parameter berjalan anda, terutamanya parameter classpath, sama ada fail konfigurasi di luar pakej disertakan dalam classpath.

左手右手慢动作

1. Semak tahap output LOG dalam fail konfigurasi
2. Semak kod Logger dalam kod untuk melihat sama ada ia sepadan dengan tahap output

左手右手慢动作

Menurut cadangan hero di bawah (kepercayaan rekaan), masalah itu akhirnya berjaya diselesaikan Di bawah, rekod langkah terperinci untuk menyelesaikan masalah:
Pertama, cari fail MANIFEST.MF dalam pakej jar dan. cari fail kaedah Kelas Utama:

Laksanakan arahan berikut:

java.exe -cp .;gf-mfile.jar org.springframework.boot.loader.JarLauncher

Terdapat maklumat dalam fail log.

=========Lampiran, analisis arahan java -cp================
java -cp .;c:dir1lib.jar Ujian

-cp adalah sama dengan -classpath Ia adalah laluan kelas lain yang bergantung kepada kelas yang ditentukan untuk dijalankan, biasanya perpustakaan kelas, pakej jar, dll. Laluan penuh ke pakej jar diperlukan dan titik koma ";" pada tetingkap ialah

dipisahkan oleh koma bertitik ":" pada Linux. Kad bebas tidak disokong. Semua pakej balang perlu disenaraikan, menggunakan titik "."
Walaupun kini terdapat IDE seperti eclipse, kadangkala sesetengah program disusun dan dijalankan secara manual Ramai orang, termasuk orang yang berpengalaman dalam pembangunan bertahun-tahun, tidak tahu cara menjalankan kelas dengan
nombor pada baris arahan. Agak mengecewakan...
Contoh penggunaan:
java -cp ..libhsqldb.jar org.hsqldb.Server -database mydb
atau
java -cp ../lib/hsqldb.jar org . hsqldb.Server -database.0 mydb -dbname.0 mydb

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan