Устранение ненужной установки log4j производится

Статика в Java:

Статика - это модификатор отсутствия доступа. Ключевое слово static относится к классу, а не к экземпляру класса. может использоваться для прикрепления переменной или метода к классу.

Статическое ключевое слово МОЖЕТ использоваться с:

Метод

Переменная

Класс, вложенный в другой класс

Блок инициализации

НЕ МОЖЕТ использоваться с:

Класс (не вложенный)

Конструктор

Интерфейсы

Метод Локальный внутренний класс (отличие от вложенного класса)

Методы внутреннего класса

Переменные экземпляра

Локальные переменные

Пример:

Представьте себе следующий пример, в котором есть переменная экземпляра с именем count , которая увеличивается в конструкторе:

package pkg;

class StaticExample {
    int count = 0;// will get memory when instance is created

    StaticExample() {
        count++;
        System.out.println(count);
    }

    public static void main(String args[]) {

        StaticExample c1 = new StaticExample();
        StaticExample c2 = new StaticExample();
        StaticExample c3 = new StaticExample();

    }
}

Вывод:

1 1 1

Поскольку переменная экземпляра получает память во время создания объекта, у каждого объекта будет копия переменной экземпляра, если она увеличивается, она не будет отражать к другим объектам.

Теперь, если мы изменим число переменных экземпляра на статическое , программа выдаст другой вывод:

package pkg;

class StaticExample {
    static int count = 0;// will get memory when instance is created

    StaticExample() {
        count++;
        System.out.println(count);
    }

    public static void main(String args[]) {

        StaticExample c1 = new StaticExample();
        StaticExample c2 = new StaticExample();
        StaticExample c3 = new StaticExample();

    }
}

Вывод:

1 2 3

В этом случае статическая переменная получит память только один раз, если какой-либо объект изменит значение статической переменной, он сохранит свое значение.

Static with Final:

Глобальная переменная, которая объявлена ​​как final и static , остается неизменной для всего выполнения. Потому что статические члены хранятся в памяти классов и загружаются только один раз за все выполнение. Они являются общими для всех объектов класса. Если вы объявите статические переменные как окончательные, любой из объектов не сможет изменить их значение, поскольку оно является окончательным. Поэтому переменные, объявленные как final и static, иногда называют константами. Все поля интерфейсов называются константами, потому что они являются окончательными и статическими по умолчанию.

enter image description here

Изображение Ресурс: Окончательный статический

10
задан Quinn Taylor 7 July 2009 в 23:06
поделиться

2 ответа

This looks like the debug from the logger itself. If you are using the XML config it looks like this:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">

Turn the debug to false.

15
ответ дан 3 December 2019 в 20:43
поделиться

Помимо проверки наличия в вашем log4j.xml атрибута debug = "true" , также убедитесь, что у вас нет log4j.debug набор системных параметров (в Eclipse это будет отображаться в конфигурации запуска как аргумент JVM со значением -Dlog4j.debug ).

3
ответ дан 3 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: