log4j:找不到资源

Ela*_*da2 4 java macos logging log4j

我有这个 log4j.properties

在这条路:

? ls -l /Users/eladb/workspaceQa/MobileAutomationWebService/web-services/src/main/resources/log4j.properties                                                         [15:54:01]
-rw-r--r--  1 eladb  eng  853 Jun 27 15:41 /Users/eladb/workspaceQa/MobileAutomationWebService/web-services/src/main/resources/log4j.properties
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的应用程序时,我会在控制台中看到:

log4j: Trying to find [/Users/eladb/workspaceQa/MobileAutomationWebService/web-services/src/main/resources/log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@4e25154f.
log4j: Trying to find [/Users/eladb/workspaceQa/MobileAutomationWebService/web-services/src/main/resources/log4j.properties] using sun.misc.Launcher$AppClassLoader@4e25154f class loader.
log4j: Trying to find [/Users/eladb/workspaceQa/MobileAutomationWebService/web-services/src/main/resources/log4j.properties] using ClassLoader.getSystemResource().

log4j: Could not find resource: [/Users/eladb/workspaceQa/MobileAutomationWebService/web-services/src/main/resources/log4j.properties].
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

public class DeviceRepositoryFromJsonFile implements DeviceRepository {

    final static Logger logger = Logger.getLogger(DeviceRepositoryFromJsonFile.class);


    public DeviceRepositoryFromJsonFile() {
        BasicConfigurator.configure();

        filePath = Constants.devicesJsonPath;
        jsonFileHandlerDevice = new JsonFileHandler<>(filePath);
        devices = fetchFromFile();
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用gradle

我想念什么?

Abh*_*nav 6

我今天亲自遇到了这个问题。

您需要做的就是file://在放置属性文件的路径以供log4j读取之前使用协议。

所以,你的道路会像

-Dlog4j.configuration=file:///Users/eladb/workspaceQa/MobileAutomationWebService/web-services/src/main/resources/log4j.properties
Run Code Online (Sandbox Code Playgroud)

希望它能帮助其他人迅速将他们指向正确的解决方案:)


Mik*_*kel 0

确保服务器不在根服务器文件夹中查找该文件夹