SLF4J лучшие практики - PullRequest
       7

SLF4J лучшие практики

4 голосов
/ 18 августа 2011

Я пишу библиотеку и использую sfl4j для обработки журналов.

Я думаю, что это хорошая идея, поскольку каждый орган может предоставить свою собственную реализацию, а затем журнал, предоставленный моим приложением, будет обрабатываться правильно.

Но я не знаю, должен ли я предоставлять реализацию в качестве переходной зависимости или нет.

Пример:

Если я только предоставлю:

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.1</version>
        </dependency>
    </dependencies>

Пользователь моей библиотеки может выбрать реализацию, но если он просто добавит мою библиотеку без чтения конфигурации, она не будет работать

В противном случае, если я предоставлю это:

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.1</version>
        </dependency>
    </dependencies>

Моя библиотека будет работать правильно только при добавлении к ней зависимости, но если пользователь захочет использовать другой slf4j, ему придется исключить мою.

Что вы думаете об этом?

1 Ответ

13 голосов
/ 18 августа 2011

Вы никогда предоставляете реализацию журналаКлиентское приложение должно сделать это.В противном случае это будет нарушением разделения интересов.Не делайте предположений о неизвестном клиенте.

...