Как правильно инициализировать log4j?

После добавления log4j в мое приложение я получаю следующий вывод каждый раз, когда выполняю свое приложение:

log4j:WARN Для логгера (slideselector.facedata.FaceDataParser) не удалось найти аппендеров.
log4j:WARN Пожалуйста, инициализируйте систему log4j должным образом.

Похоже, это означает, что отсутствует файл конфигурации. Где должен находиться этот файл конфигурации и каково его начальное содержание?

Я использую обычную java для разработки настольного приложения. Так что никакого веб-сервера и т.д...

Комментарии к вопросу (3)
Решение

Log4j по умолчанию ищет файл с названием log4j.properties или log4j.xml в classpath. Вы можете контролировать, какой файл он использует для инициализации, задавая системные свойства, как описано здесь (ищите раздел "Процедура инициализации по умолчанию").

Например:

java -Dlog4j.configuration=customName ....

Заставит log4j искать файл с именем customName в classpath.

Если у вас возникают проблемы, я считаю полезным включить log4j.debug:

-Dlog4j.debug

Он выведет в System.out много полезной информации о том, какой файл он использовал для инициализации, какие логгеры / аппендеры были настроены и как и т.д.

Конфигурационный файл может быть java-файлом свойств или xml-файлом. Вот пример формата файла свойств, взятый с страницы документации log4j intro:

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
Комментарии (5)

При настройке настройки log4j правильно отлично подходит для на "Реал" и проекты, которые вы, возможно, захотите, быстрого-и-грязного раствора, например, если вы're просто тестирование новой библиотеки.

Если так вызов статического метода

org.apache.log4j.BasicConfigurator.configure();

будут намечены основные войдя в консоль, и сообщения об ошибках исчезнут.

Комментарии (4)

Если вы просто избавиться от всего (например, если вы не в тестах)

org.apache.log4j.BasicConfigurator.configure(new NullAppender());
Комментарии (0)

Согласно страница Apache log4j они чаво:

почему я вижу предупреждение о "не аппендеры нашли для регистратора" и "Пожалуйста, настроить log4j они правильно и"?

это происходит, когда конфигурация по умолчанию файлы к log4j.свойства и log4j.xml` не может быть найден и приложение не выполняет никаких явных конфигураций. нить настройки log4jиспользует.getContextClassLoader().методу getresource (), чтобы найти файлы конфигурации по умолчанию и не напрямую проверить файловую систему. Зная соответствующие место для настройки log4j.свойства или log4j.xml требует понимания стратегии поиска загрузчика класса в использовании.к log4j не предусматривает настройки по умолчанию, после выхода на консоль или в файл, система может быть запрещена в некоторых средах.

В основном предупреждение не аппендеры может быть найдена для регистратора означает, что вы're, используя настройки log4j системные журналы, но вы не'т добавил Аппендеры (например, FileAppender, ConsoleAppender, SocketAppender, SyslogAppender и т. д.) в ваш файл конфигурации или конфигурационный файл отсутствует.

Существует три способа настроить настройки log4j: с свойствах файла (к log4j.свойства), с XML-файла и с помощью Java-кода (rootLogger.addAppender(новый NullAppender());).

`к log4j.свойства

Если вы'файл свойств ве присутствует (например, при установке Гумз), вам нужно разместить этот файл в вашей [классов] каталог4.

классов

Вот некоторые команды предложения в Linux как определить значение переменной classpath:

$ echo $CLASSPATH
$ ps wuax | grep -i classpath
$ grep -Ri classpath /etc/tomcat? /var/lib/tomcat?/conf /usr/share/tomcat?

или от Java: система.метод getproperty("и Ява.класс.путь к себе").

Настройки log4j XML-файле

Ниже приведен XML-файл конфигурации для настройки log4j в формате XML:

<?xml version="1.0" encoding="UTF-8" ?>




    <param name="Target" value="System.out"/> 

      <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 








Котяра

Если вы're, используя Tomcat, вы можете разместить log4j они ваши.свойствав: /usr/доли/котяра?/Либ/ " или " /var/lib в/котяра?/веб-приложений/*/веб-INF папку в/lib/`.

Гумз

Для справки, Гумз по умолчанию настройки log4j.свойства файла выглядит так:

#  Logging level
solr.log=logs/
log4j.rootLogger=INFO, file, CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n

#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9

#- File to log to and log format
log4j.appender.file.File=${solr.log}/solr.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n

log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN

# set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF

Почему может'т к log4j найти файл мои свойства в J2EE или военное применение?

краткий ответ: свойства log4j классы и свойства файла не в рамках же classloader.

log4j они используются только классом по умолчанию.механизм forName()` для классов нагрузки. Ресурсы обрабатываются аналогично. См. документацию на языке Java.яз.Загрузчик классов для более подробной информации.

так что, если вы'вновь возникли проблемы, попробуйте загрузить себя класс или ресурс. Если вы можете'т найти его, ни к log4j. ;)


См. также:

Комментарии (0)

Вы можете установить местоположение вашего настройки log4j.свойства изнутри вашего Java-приложения с помощью:

org.apache.log4j.PropertyConfigurator.configure(file/location/log4j.properties)

Более подробная информация доступна здесь: https://logging.apache.org/log4j/1.2/manual.html

Комментарии (2)

Найдите в Интернете log4j.properties или log4j.xml, который имеет корневой аппендер, и поместите его в свой classpath.

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.rootLogger=debug, stdout

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

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=100KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=test.log
log4j.appender.file.threshold=debug
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug,file

хотя для приложений, ведущих подробный журнал, 100 КБ обычно нужно увеличить до 1 МБ или 10 МБ, особенно для отладки.

Лично я устанавливаю несколько регистраторов и устанавливаю корневой регистратор на уровень предупреждения или ошибки вместо отладки.

Комментарии (0)

Другой способ сделать это без применения свойства файла в classpath, чтобы установить свойство из кода Java напрямую. Вот пример кода.

public class Log4JSample {

public static void main(String[] args) {
    Properties properties=new Properties();
    properties.setProperty("log4j.rootLogger","TRACE,stdout,MyFile");
    properties.setProperty("log4j.rootCategory","TRACE");

    properties.setProperty("log4j.appender.stdout",       "org.apache.log4j.ConsoleAppender");
    properties.setProperty("log4j.appender.stdout.layout",    "org.apache.log4j.PatternLayout");
    properties.setProperty("log4j.appender.stdout.layout.ConversionPattern","%d{yyyy/MM/dd HH:mm:ss.SSS} [%5p] %t (%F) - %m%n");

    properties.setProperty("log4j.appender.MyFile", "org.apache.log4j.RollingFileAppender");
    properties.setProperty("log4j.appender.MyFile.File", "my_example.log");
    properties.setProperty("log4j.appender.MyFile.MaxFileSize", "100KB");
    properties.setProperty("log4j.appender.MyFile.MaxBackupIndex", "1");
    properties.setProperty("log4j.appender.MyFile.layout",    "org.apache.log4j.PatternLayout");
    properties.setProperty("log4j.appender.MyFile.layout.ConversionPattern","%d{yyyy/MM/dd HH:mm:ss.SSS} [%5p] %t (%F) - %m%n");

    PropertyConfigurator.configure(properties);

    Logger logger = Logger.getLogger("MyFile");

    logger.fatal("This is a FATAL message.");
    logger.error("This is an ERROR message.");
    logger.warn("This is a WARN message.");
    logger.info("This is an INFO message.");
    logger.debug("This is a DEBUG message.");
    logger.trace("This is a TRACE message.");
}

}

Комментарии (0)
import org.apache.log4j.BasicConfigurator;

вызвать этот метод

BasicConfigurator.configure();
Комментарии (1)

Вы можете установить уровень журнала с помощью setLevel().

Уровни полезны, легко установить, какой информации вы хотите, чтобы программа показывала.

Например:

Logger.getRootLogger().setLevel(Level.WARN); //will not show debug messages

Набор возможных уровнях:

проследить,

отладка

информация,

предупредить,

ошибки и

роковой

По данным услуги лесозаготовки инструкцию

Комментарии (0)

Чтобы включить -Dlog4j.отладка, я иду на системы, Дополнительные параметры системы, переменные среды и набор системной переменной _JAVA_OPTIONS к -Dlog4j.отладка.

Комментарии (0)

Как было описано выше существуют 2 подхода

Первый-это просто добавить эту строку в метод main:

BasicConfigurator.configure();

Второй подход заключается в добавлении настоящего стандарта к log4j.свойства файла в ваш classpath:

Во время приема второй подход вы должны убедиться, что вы правильно инициализировать файл.

Например.

Properties props = new Properties();

props.load(new FileInputStream("log4j property file path"));

props.setProperty("log4j.appender.File.File", "Folder where you want to store log files/" + "File Name");

Убедитесь, что вы создаете нужную папку для сохранения файлов журналов.

Комментарии (0)

В какой среде вы разрабатываете? Используете ли вы Apache Tomcat?

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyyMMdd HH:mm:ss.SSS} [[%5p] %c{1} [%t]] %m%n

У меня есть подобное свойство в моем приложении на Java.

Комментарии (0)

Мой log4j они получили установлена ниже свойства файла:

## direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.rootLogger=debug, stdout
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=100KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=./logs/test.log
log4j.appender.file.threshold=debug
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug,file
Комментарии (0)

Я'вэ создал файл к log4j.свойства в ресурсы следующая папки hibernate.cfg.xml файл и наполнил ее текст ниже:

log4j.rootLogger=INFO, CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{1}:%L] %m%n

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

Комментарии (0)

Просто создайте настройки log4j.свойства под src/главная папка/сборка. В зависимости от того, если вы хотите, чтобы сообщения журнала, которая будет показана в консоли или в файле, который вы измените ваш файл. Следующий собирается показать ваши сообщения в консоли.

# Root logger option
log4j.rootLogger=INFO, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Комментарии (0)

Попробуйте установить отладка атрибута в log4j:узел конфигурации к истинному.

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

Комментарии (1)

Регистрация по API - библиотеки API журналирования Java значительно упрощает обслуживание и сопровождение программного обеспечения на объектах заказчика, производя отчеты, пригодные для анализа конечных пользователей, системных администраторов, инженеров по обслуживанию и команды разработки программного обеспечения. API журналирования получают информацию, такую как отказы безопасности, ошибок конфигурации, узких мест в производительности, и/или ошибки в приложения или платформы. Базовый пакет включает поддержку для доставки текстовом или XML-формате записи журнала на память, выходных потоков, консолей, файлы и сокеты. Кроме того, API журналирования, способных взаимодействовать с предоставление услуг в области лесозаготовок, которые уже существуют на операционную систему._

Пакет <суп>Ява.утиль.ведение журнала</суп> « обеспечивает классы и интерфейсы платформы Java'с одножильным зал.


К log4j 1.х « log4j-это популярный на основе Java входа программы. Log4j-это проект с открытым исходным кодом на основе работы многих авторов. Это позволяет разработчику контролировать, какие сообщения журнала будут выводиться в различных местах с помощью Аппендеры [консоли, файлы, БД и электронной почты]. Он полностью настраивается во время выполнения, используя внешние файлы конфигурации.

и gt; Настройки log4j состоит из трех основных компонентов:

  • лесозаготовители - [выкл, роковая, ошибка, предупреждение, информация, отладки, трассировки]
  • Аппендеры

и ГТ; > - Апач Викискладе лесозаготовки: ConsoleAppender, FileAppender, RollingFileAppender, DailyRollingFileAppender, JDBCAppender-водитель, SocketAppender

  • макеты - [PatternLayout, EnhancedPatternLayout]

Файлы конфигурации могут быть записаны в XML или в свойствах Java (формате ключ=значение).

  1. log4j_External.свойства « Java-свойств (ключ=значение) формат

строку между открывающим и"${" и закрытие глаз "}" это интерпретируется как ключ. Значение подставляется переменная может быть определена как система свойств или сам конфигурационный файл. Установить конкретные приемщика вариантов. « К log4j.приемщика.appenderName.параметр=значение, для каждого имени приемщика вы можете настроить его макет.

в

log4j.rootLogger=INFO, FILE, FILE_PER_SIZE, FILE_PER_DAY, CONSOLE, MySql

#log.path=./
log.path=E:/Logs

# https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html
# {%-5p - [WARN ,INFO ,ERROR], %5p 0- [ WARN, INFO,ERROR]}
log.patternLayout=org.apache.log4j.PatternLayout
log.pattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS} %C{1}:%12.20M:%L - %m %n

# System.out | System.err
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.err
log4j.appender.CONSOLE.layout=${log.patternLayout}
log4j.appender.CONSOLE.layout.ConversionPattern=${log.pattern}

# File Appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log.path}/logFile.log
#log4j:ERROR setFile(null,false) call failed. - Defaults setFile(null,true)
#log4j.appender.FILE.Append = false
log4j.appender.FILE.layout=${log.patternLayout}
log4j.appender.FILE.layout.ConversionPattern=${log.pattern}

# BackUP files for every Day.
log4j.appender.FILE_PER_DAY=org.apache.log4j.DailyRollingFileAppender
# [[ Current File ] - logRollingDayFile.log ], { [BackUPs] logRollingDayFile.log_2017-12-10, ... }
log4j.appender.FILE_PER_DAY.File=${log.path}/logRollingDayFile.log
log4j.appender.FILE_PER_DAY.DatePattern='_'yyyy-MM-dd
log4j.appender.FILE_PER_DAY.layout=${log.patternLayout}
log4j.appender.FILE_PER_DAY.layout.ConversionPattern=${log.pattern}

# BackUP files for size rotation with log cleanup.
log4j.appender.FILE_PER_SIZE=org.apache.log4j.RollingFileAppender
# [[ Current File ] - logRollingFile.log ], { [BackUPs] logRollingFile.log.1, logRollingFile.log.2}
log4j.appender.FILE_PER_SIZE.File=${log.path}/logRollingFile.log
log4j.appender.FILE_PER_SIZE.MaxFileSize=100KB
log4j.appender.FILE_PER_SIZE.MaxBackupIndex=2
log4j.appender.FILE_PER_SIZE.layout=${log.patternLayout}
log4j.appender.FILE_PER_SIZE.layout.ConversionPattern=${log.pattern}

# MySql Database - JDBCAppender
log4j.appender.MySql=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.MySql.driver=com.mysql.jdbc.Driver
log4j.appender.MySql.URL=jdbc:mysql://localhost:3306/automationlab
log4j.appender.MySql.user=root
log4j.appender.MySql.password=
log4j.appender.MySql.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.MySql.layout.ConversionPattern=INSERT INTO `logdata` VALUES ('%p', '%d{yyyy-MM-dd HH:mm:ss}', '%C', '%M', '%L', '%m');
#log4j.appender.MySql.sql=INSERT INTO `logdata` VALUES ('%p', '%d{yyyy-MM-dd HH:mm:ss}', '%C', '%M', '%L', '%m');

# Direct log events[Messages] to MongoDB Collection - MongoDbAppender
log.mongoDB.hostname=loalhost
log.mongoDB.userName=Yash777
log.mongoDB.password=Yash@123
log.mongoDB.DB=MyLogDB
log.mongoDB.Collection=Logs

log4j.appender.MongoDB=org.log4mongo.MongoDbAppender
log4j.appender.MongoDB.hostname=${log.mongoDB.hostname}
log4j.appender.MongoDB.userName=${log.mongoDB.userName}
log4j.appender.MongoDB.password=${log.mongoDB.password}
log4j.appender.MongoDB.port=27017
log4j.appender.MongoDB.databaseName=${log.mongoDB.DB}
log4j.appender.MongoDB.collectionName=${log.mongoDB.Collection}
log4j.appender.MongoDB.writeConcern=FSYNCED

в

Структура MySQL таблицы для таблицы logdata

в

CREATE TABLE IF NOT EXISTS `logdata` (
  `Logger_Level` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
  `DataTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `ClassName` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
  `MethodName` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `LineNumber` int(10) NOT NULL,
  `Message` text COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

в

в

<?xml version="1.0" encoding="iso-8859-1"?>




        <param name="target" value="System.out" />
        <param name="threshold" value="debug" />

            <param name="ConversionPattern" value="%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS} %C{1}:%12.20M:%L - %m %n" />




        <param name="file" value="E:/Logs/logFile.log" />
        <param name="append" value="false" />

            <param name="ConversionPattern" value="%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS} %C{1}:%12.20M:%L - %m %n" />




        <param name="file" value="E:/Logs/logRollingFile.log" />
        <param name="immediateFlush" value="true"/>
        <param name="maxFileSize" value="100KB" />
        <param name="maxBackupIndex" value="2"/>

            <param name="ConversionPattern" value="%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS} %C{1}:%12.20M:%L - %m %n" />




        <param name="file" value="E:/Logs/logRollingDayFile.log" />
        <param name="datePattern" value="'_'yyyy-MM-dd" />

            <param name="ConversionPattern" value="%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS} %C{1}:%12.20M:%L - %m %n"/>










в


  1. Конфигурации log4j они из URL в Java-программы:

В того, чтобы указать пользовательские настройки с внешнего файла, используемого класс должен реализовать конфигуратор интерфейс.

если конфигурация по умолчанию файлы "и к log4j.на&quot свойств;, "и к log4j.формате XML" и не доступны

  • и"Настройки log4j.на&quot свойствами; вы можете подавать к PropertyConfigurator.настроить(Ява.чистая.Метод URL-адрес).
  • и"Настройки log4j.формате XML" и DOMConfigurator будет использоваться.

в

public class LogFiles {
    // Define a static logger variable so that it references the Logger instance named "LogFiles".
    static final Logger log = Logger.getLogger( LogFiles.class );

    @SuppressWarnings("deprecation")
    public static void main(String[] args) {
        System.out.println("CONFIGURATION_FILE « "+LogManager.DEFAULT_CONFIGURATION_FILE);
        System.out.println("DEFAULT_XML_CONFIGURATION_FILE = 'log4j.xml' « Default access modifier");

        String fileName = //"";
                //"log4j_External.xml";
                "log4j_External.properties";
        String configurationFile = System.getProperty("user.dir")+"/src/" + fileName;

        if( fileName.contains(".xml") ) {
            DOMConfigurator.configure( configurationFile );
            log.info("Extension *.xml");
        } else if ( fileName.contains(".properties") ) {
            PropertyConfigurator.configure( configurationFile );
            log.info("Extension *.properties");
        } else {
            DailyRollingFileAppender dailyRollingAppender = new DailyRollingFileAppender();
            dailyRollingAppender.setFile("E:/Logs/logRollingDayFile.log");
            dailyRollingAppender.setDatePattern("'_'yyyy-MM-dd");

            PatternLayout layout = new PatternLayout();
            layout.setConversionPattern( "%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS} %C{1}:%12.20M:%L - %m %n" );
            dailyRollingAppender.setLayout(layout);

            dailyRollingAppender.activateOptions();

            Logger rootLogger = Logger.getRootLogger();
            rootLogger.setLevel(Level.DEBUG);
            rootLogger.addAppender(dailyRollingAppender);

            log.info("Configuring from Java Class.");
        }

        log.info("Console.Message.");
        method2();
        methodException(0);
    }

    static void method2() {
        log.info("method2 - Console.Message.");
    }
    static void methodException(int b) {
        try {
            int a = 10/b;
            System.out.println("Result : "+ a);
            log.info("Result : "+ a);
        } catch (Exception ex) { // ArithmeticException: / by zero
            log.error(String.format("\n\tException occurred: %s", stackTraceToString(ex)));
        }
    }
    public static String stackTraceToString(Exception ex) {
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        ex.printStackTrace(pw);
        return sw.toString();
    }
}

в

Комментарии (0)

Исправление для меня было поставить на "Настройки log4j.на&quot свойств; в графе "НИЦ" в папку.

Комментарии (0)

Решение Maven:

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

`` <свойства>

1.7.28 в

<зависимость> <группы>орг.slf4j</идентификатор_группы> <ИД артефакта>slf4j-API-интерфейс</ИД артефакта> <версия>${slf4jVersion}</версия> </зависимость> <зависимость> <группы>орг.slf4j</идентификатор_группы> <ИД артефакта>slf4j-jdk14</ИД артефакта> <версия>${slf4jVersion}</версия> </зависимость> ``

Комментарии (0)

Для тестирования, быстрый-грязным способом, включая создание журнала:

org.apache.log4j.BasicConfigurator.configure();
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.WARN);

// set to Level.DEBUG for full, or Level.OFF..
Комментарии (0)