Що таке шлях скидання лог-файлу за замовчуванням log4j

Привіт я новачок в програмуванні концепцій, і я, як правило, працювати щось з log4j. Так що я читаю Log4j підручники, де я знайшов наступний код:

package test;
import org.apache.log4j.Logger;
import java.io.*;
import java.sql.SQLException;


public class Log4jExample {

    /* Get actual class name to be printed on */
        static Logger log = Logger.getLogger(Log4jExample.class.getName());
        public static void main(String[] args)throws IOException,SQLException
        {
            log.debug("Hello this is an debug message");
            log.info("Hello this is an info message");
        }

}

Але після запуску цього в eclipse я не в змозі знайти створений лог-файл. Хто-небудь може сказати, де знаходиться файл? Також допоможіть мені з деякими кращими сайтами, з яких я можу дізнатися Log4j і Java Doc з нуля. Дякую!!

27
@shruti, я додав відповідь з відповідним посібником, з якого ви взяли цей зразок коду Java, який може допомогти вам зрозуміти його роботу, конфігурацію та багато іншого
додано Автор Jubin Patel, джерело
@shruti, я додав відповідь з відповідним посібником, з якого ви взяли цей зразок коду Java, який може допомогти вам зрозуміти його роботу, конфігурацію та багато іншого
додано Автор Jubin Patel, джерело
@shruti, я додав відповідь з відповідним посібником, з якого ви взяли цей зразок коду Java, який може допомогти вам зрозуміти його роботу, конфігурацію та багато іншого
додано Автор Jubin Patel, джерело
Якщо ви хочете мати журнал у файлі, ви повинні визначити, де слід створювати файл журналу.
додано Автор Ruchira Gayan Ranaweera, джерело
Якщо ви хочете мати журнал у файлі, ви повинні визначити, де слід створювати файл журналу.
додано Автор Ruchira Gayan Ranaweera, джерело
@shruti Це тому, що не існує log4j.properties у classpath. Це не помилка, тому що Log4j повертається до типових параметрів, які реєструються в консолі. Більше інформації на офіційному сайті .
додано Автор Ravi Thapliyal, джерело
@shruti Це тому, що не існує log4j.properties у classpath. Це не помилка, тому що Log4j повертається до типових параметрів, які реєструються в консолі. Більше інформації на офіційному сайті .
додано Автор Ravi Thapliyal, джерело
@shruti Це тому, що не існує log4j.properties у classpath. Це не помилка, тому що Log4j повертається до типових параметрів, які реєструються в консолі. Більше інформації на офіційному сайті .
додано Автор Ravi Thapliyal, джерело
Ви вже пробували стандартний висновок?
додано Автор morgano, джерело
Ця відповідь SO може допомогти вам: xml для log4j має головне Java-додаток і хочете w "> stackoverflow.com/questions/2619160/…
додано Автор Jiri Patera, джерело
ya наступне попередження відображається на стандартному виході: log4j: WARN Не знайдено жодного appenders для logger (test.Log4jExample). log4j: WARN Будь ласка, ініціалізуйте систему log4j належним чином. log4j: WARN Див. noconfig для отримання додаткової інформації.
додано Автор manisha, джерело
ya наступне попередження відображається на стандартному виході: log4j: WARN Не знайдено жодного appenders для logger (test.Log4jExample). log4j: WARN Будь ласка, ініціалізуйте систему log4j належним чином. log4j: WARN Див. noconfig для отримання додаткової інформації.
додано Автор manisha, джерело
ya наступне попередження відображається на стандартному виході: log4j: WARN Не знайдено жодного appenders для logger (test.Log4jExample). log4j: WARN Будь ласка, ініціалізуйте систему log4j належним чином. log4j: WARN Див. noconfig для отримання додаткової інформації.
додано Автор manisha, джерело
@ Ravi так може у PLS сказати мені, де мій журнал інформація йде, як це не відображається на консолі і де я розміщувати свій файл.
додано Автор manisha, джерело
@ Ravi так може у PLS сказати мені, де мій журнал інформація йде, як це не відображається на консолі і де я розміщувати свій файл.
додано Автор manisha, джерело
@ Ravi так може у PLS сказати мені, де мій журнал інформація йде, як це не відображається на консолі і де я розміщувати свій файл.
додано Автор manisha, джерело

7 Відповіді

Щоб перенаправити виведення журналів у файл, вам потрібно скористатися FileAppender та визначити інші файли у файлі log4j.properties/xml. Ось приклад файлу властивостей для одного й того ж:

# Root logger option
log4j.rootLogger=INFO, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Докладніше про використання log4j див.

http://www.mkyong.com/logging/log4j-log4j-properties-examples/

26
додано
Велике спасибі @Juned
додано Автор manisha, джерело

Щоб перенаправити виведення журналів у файл, вам потрібно скористатися FileAppender та визначити інші файли у файлі log4j.properties/xml. Ось приклад файлу властивостей для одного й того ж:

# Root logger option
log4j.rootLogger=INFO, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Докладніше про використання log4j див.

http://www.mkyong.com/logging/log4j-log4j-properties-examples/

26
додано
Велике спасибі @Juned
додано Автор manisha, джерело

Ви скопіювали цей зразок коду з Тут , так?
тепер, як ви бачите там властивість файл, який вони визначили, ви зробили те ж саме? якщо ні, то додайте нижче код у ваш проект з файлом властивостей для log4j

Таким чином, вміст файлу log4j.properties буде таким:

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

внесіть зміни відповідно до вимоги, як log path

6
додано
зрозумів дякую.. :)
додано Автор manisha, джерело

За замовчуванням Log4j реєструється в стандартному виводі , а це означає, що ви маєте можливість бачити повідомлення журналу на перегляді консолі вашого Eclipse. Щоб увійти до файлу, потрібно скористатися FileAppender , вказавши його у файлі log4j.properties у класі classpath .

Створіть файл log4j.properties у класі . Це дозволяє реєструвати повідомлення як у файлі, так і в консолі.

log4j.rootLogger=debug, stdout, file

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.file=org.apache.log4j.FileAppender
log4j.appender.file.File=example.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n

Note: The above creates an example.log in your current working directory (i.e. Eclipse's project directory) so that the same log4j.properties could work with different projects without overwriting each other's logs.

References:
Apache log4j 1.2 - Short introduction to log4j

4
додано
Все, що знаходиться всередині "/ src", знаходиться у вашому класі classpath .
додано Автор Ravi Thapliyal, джерело
Зверніть увагу, що це створює example.log у вашому поточному dir (проект dir) Eclipse, щоб ті ж log4j.properties працювали з проектами diff без написання журналів.
додано Автор Ravi Thapliyal, джерело
@golimar, коментарі не можуть бути відредаговані через деякий час, тому я включаю мій, як редагувати свою відповідь. Дякуємо за відгук. Я переконуюсь, що в майбутньому я не буду використовувати цю скороченню :)
додано Автор Ravi Thapliyal, джерело
@RaviThapliyal: спасибі за відповідь. У мене є питання, після того, як я створив JAR і запустив його, яке розташування файлу журналу?
додано Автор Aniket Kulkarni, джерело
@Ravi, будь ласка, використовуйте слово "каталог" або "CWD" для людей, які шукають цю сторінку з Ctrl + F;)
додано Автор golimar, джерело
Це єдина відповідь, яка фактично відповіла на запитання, де log4j реєструє за замовчуванням.
додано Автор fzzfzzfzz, джерело
так можна і pls скажіть мені, де мій журнал інформація відбувається, як це не відображається на консолі і де я розміщувати мій.
додано Автор manisha, джерело

За замовчуванням Log4j реєструється в стандартному виводі , а це означає, що ви маєте можливість бачити повідомлення журналу на перегляді консолі вашого Eclipse. Щоб увійти до файлу, потрібно скористатися FileAppender , вказавши його у файлі log4j.properties у класі classpath .

Створіть файл log4j.properties у класі . Це дозволяє реєструвати повідомлення як у файлі, так і в консолі.

log4j.rootLogger=debug, stdout, file

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.file=org.apache.log4j.FileAppender
log4j.appender.file.File=example.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n

Note: The above creates an example.log in your current working directory (i.e. Eclipse's project directory) so that the same log4j.properties could work with different projects without overwriting each other's logs.

References:
Apache log4j 1.2 - Short introduction to log4j

4
додано
Все, що знаходиться всередині "/ src", знаходиться у вашому класі classpath .
додано Автор Ravi Thapliyal, джерело
Зверніть увагу, що це створює example.log у вашому поточному dir (проект dir) Eclipse, щоб ті ж log4j.properties працювали з проектами diff без написання журналів.
додано Автор Ravi Thapliyal, джерело
@golimar, коментарі не можуть бути відредаговані через деякий час, тому я включаю мій, як редагувати свою відповідь. Дякуємо за відгук. Я переконуюсь, що в майбутньому я не буду використовувати цю скороченню :)
додано Автор Ravi Thapliyal, джерело
@RaviThapliyal: спасибі за відповідь. У мене є питання, після того, як я створив JAR і запустив його, яке розташування файлу журналу?
додано Автор Aniket Kulkarni, джерело
@Ravi, будь ласка, використовуйте слово "каталог" або "CWD" для людей, які шукають цю сторінку з Ctrl + F;)
додано Автор golimar, джерело
Це єдина відповідь, яка фактично відповіла на запитання, де log4j реєструє за замовчуванням.
додано Автор fzzfzzfzz, джерело
так можна і pls скажіть мені, де мій журнал інформація відбувається, як це не відображається на консолі і де я розміщувати мій.
додано Автор manisha, джерело

За замовчуванням Log4j реєструється в стандартному виводі , а це означає, що ви маєте можливість бачити повідомлення журналу на перегляді консолі вашого Eclipse. Щоб увійти до файлу, потрібно скористатися FileAppender , вказавши його у файлі log4j.properties у класі classpath .

Створіть файл log4j.properties у класі . Це дозволяє реєструвати повідомлення як у файлі, так і в консолі.

log4j.rootLogger=debug, stdout, file

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.file=org.apache.log4j.FileAppender
log4j.appender.file.File=example.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n

Note: The above creates an example.log in your current working directory (i.e. Eclipse's project directory) so that the same log4j.properties could work with different projects without overwriting each other's logs.

References:
Apache log4j 1.2 - Short introduction to log4j

4
додано
@golimar, коментарі не можуть бути відредаговані через деякий час, тому я включаю мій, як редагувати свою відповідь. Дякуємо за відгук. Я переконуюсь, що в майбутньому я не буду використовувати цю скороченню :)
додано Автор Ravi Thapliyal, джерело
Все, що знаходиться всередині "/ src", знаходиться у вашому класі classpath .
додано Автор Ravi Thapliyal, джерело
Зверніть увагу, що це створює example.log у вашому поточному dir (проект dir) Eclipse, щоб ті ж log4j.properties працювали з проектами diff без написання журналів.
додано Автор Ravi Thapliyal, джерело
@RaviThapliyal: спасибі за відповідь. У мене є питання, після того, як я створив JAR і запустив його, яке розташування файлу журналу?
додано Автор Aniket Kulkarni, джерело
@Ravi, будь ласка, використовуйте слово "каталог" або "CWD" для людей, які шукають цю сторінку з Ctrl + F;)
додано Автор golimar, джерело
Це єдина відповідь, яка фактично відповіла на запитання, де log4j реєструє за замовчуванням.
додано Автор fzzfzzfzz, джерело
так можна і pls скажіть мені, де мій журнал інформація відбувається, як це не відображається на консолі і де я розміщувати мій.
додано Автор manisha, джерело

Ви можете побачити інформацію журналу у вигляді консолі вашого IDE, якщо ви не використовуєте жодних властивостей log4j для створення файлу журналу. Ви можете визначити log4j.properties у вашому проекті, щоб ці властивості використовувалися для створення файлу журналу. Нижче наведено швидкий зразок.

# Global logging configuration
log4j.rootLogger=DEBUG, stdout, R

# SQL Map logging configuration...
log4j.logger.com.ibatis=INFO
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=INFO
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=INFO
log4j.logger.com.ibatis.SQLMap.engine.impl.SQL MapClientDelegate=INFO

log4j.logger.java.sql.Connection=INFO
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=INFO

log4j.logger.org.apache.http=ERROR

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=MyLog.log
log4j.appender.R.MaxFileSize=50000KB
log4j.appender.R.Encoding=UTF-8

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

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F\:%L) - %m%n
0
додано
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників