1: Введение в введение log4j
Log4J - это проект с открытым исходным кодом Apache. выходной формат каждого журнала; Что наиболее интересно, так это то, что их можно гибко настроить через файл конфигурации без изменения кода приложения.
Кроме того, через другие языковые интерфейсы вы можете использовать log4j в программах C, C ++, .net, PL/SQL. компонент. Более того, используя различные сторонние расширения, вы можете легко интегрировать log4j в J2EE, Jini и даже SNMP.
2. Примеры начинающих
1. Создайте новый проект Java, импортируйте Log4j-1.2.17.jar, а окончательный каталог всего проекта заключается в следующем
2. Создать и установить log4j.properties на том же уровне
### настраивать###
log4j.rootlogger = Debug, stdout, d, e
### Выходная информация для управления подъемом ####
log4j.appender.stdout = org.apache.log4j.consoseppender
log4j.appender.stdout.target = System.out
log4j.appender.stdout.layout = org.apache.log4j.patternlayout
log4j.appender.stdout.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd Hh: MM: SS, SSS} Метод:%l%n%m%n n
### Выходные журналы выше уровня отладки до = e: //logs/error.log ###
log4j.appender.d = org.apache.log4j.dailyrollingFileAppender
log4j.appender.d.file = e: //logs/log.log
log4j.appender.d.append = true
log4j.appender.d.threshold = отлад
log4j.appender.d.layout = org.apache.log4j.patternlayout
log4j.appender.d.layout.conversionpattern = %-d {yyyy-mm-dd hh: mm: ss} [ %t: %r]-[ %p] %m %n
### Выходные журналы выше уровня ошибки до = e: //logs/error.log ###
log4j.appender.e = org.apache.log4j.dailyrollingFileAppender
log4j.appender.e.file = e: //logs/error.log
log4j.appender.e.append = true
log4j.appender.e.threshold = ошибка
log4j.appender.e.layout = org.apache.log4j.patternlayout
log4j.appender.e.layout.conversionpattern = %-d {yyyy-mm-dd hh: mm: ss} [ %t: %r]-[ %p] %m %n
3. Установите содержимое журнала
пакет com.mucfc; import org.apache.log4j.logger;/** *@Автор Linbingwen *@18 мая 2015 г. 9:14:21 */Общедоступный тест класса {private Static Logg ER = logger.getLogger (тест. класс); ::::::::::::::::: ::::::: .error («Это сообщение об ошибке».);4. Результат вывода
(1) Во -первых, информация консоли
(2) Давайте посмотрим на выходной файл
Содержание выглядит следующим образом, и обнаруживается, что он был выведен в соответствующий документ по мере необходимости.
3. Базовый метод использования log4j
Log4J состоит из трех важных компонентов: приоритет информации о журнале, пункт назначения информации о журнале и формат вывода информации о журнале. Приоритет информации о журнале от высокой до низкой ошибки. Файл;
2.1
На самом деле, вы также не можете использовать файлы конфигурации, но настроить среду log4j в вашем коде. Однако использование файлов конфигурации сделает ваше приложение более гибким. Log4J поддерживает два формата файлов конфигурации, один - это файл формата XML, а другой - файл функции Java (key = value). Ниже мы представляем метод использования файлов функций Java в качестве файлов конфигурации:
1. Настройка корневого регистратора, его синтаксис:
log4j.rootlogger = [level], Appendername, Appendername,…
Среди них уровень является приоритетом ведения журнала, разделенной на выключение, фатальную, ошибку, предупреждающую, информацию, отладка, все или уровень, который вы определяете. Log4J рекомендует использовать только четыре уровня, с приоритетом от высокого до низкого уровня, а именно ошибки, предупреждения, информация и отладка. По определенным здесь уровню вы можете управлять переключателями до соответствующего уровня информации журнала в приложении. Например, если здесь определен уровень информации, вся информация о журнале уровня отладки в приложении не будет распечатана. Appendername относится к тому, куда выводится информация о журнале B. Вы можете указать несколько выходных направлений одновременно.
2. Настройте назначение для вывода информации о журнале, а его синтаксис:
log4j.appender.appendername = Fully.qualified.name.of.appender.class
log4j.appender.appendername.option1 = value1
…
log4j.appender.appendername.option = valuen
Среди них приложения, предоставленные log4j, следующие:
org.apache.log4j.consoleappender (консоль),
org.apache.log4j.fileAppender (файл),
org.apache.log4j.dailyrollingfileappender (генерирует один файл журнала каждый день),
org.apache.log4j.rollingfileAppender (новый файл генерируется, когда размер файла достигает указанного размера),
org.apache.log4j.writerappender (Отправить информацию о журнале в формате потока в любое указанное место)
3. Настройте формат (макет) информации журнала, а его синтаксис:
log4j.appender.appendername.layout = Fully.qualified.name.of.layout.class
log4j.appender.appendername.layout.option1 = value1
…
log4j.appender.appendername.layout.option = valuen
Среди них есть несколько макетов, предоставляемых Log4J:
org.apache.log4j.htmllayout (макет в форме таблицы HTML),
org.apache.log4j.patternlayout (режим макета может быть гибко указан),
org.apache.log4j.simplelayout (содержит уровень и информационную строку информации журнала),
org.apache.log4j.ttcclayout (включая время, поток, категория и т. Д. Генерации журналов)
Log4J использует формат печати, аналогичный функции PrintF на языке C для форматирования информации журнала, а параметры печати следующие: %m
%p Приоритет вывода, то есть отладка, информация, предупреждение, ошибка, фатальный
%R выводит количество миллисекундов, взятых с начала приложения для вывода информации о журнале
%c выводит категорию, как правило, полное имя класса.
%t выводит имя потока, которое генерирует событие журнала
%n выводит перерыв обратной линии перевозки, платформа Windows «RN», платформа Unix - это «n»
%D выводит дату или время времени журнала, формат по умолчанию ISO8601. : 18 октября 2002 г. 22:10:28, 921
%l Вывод Вывод место место, где происходит событие журнала, в том числе имя класса, произошедший поток, и количество строк в коде. Пример: testlog4.main (testlog4.java:10)
2.2.
1. Получите рекордер
Используя log4j, первым шагом является получение регистратора журнала, который будет отвечать за управление информацией о журнале. Синтаксис:
Public Static Logger GetLogger (имя строки)
Получите журнал по указанному имени и, при необходимости, создайте новый журнал для имени. Имя обычно называется в этом классе, например:
static logger logger = logger.getlogger (serverwithlog4j.class.getName ())
2. Прочтите файл конфигурации
После получения регистратора второй шаг будет настроить среду log4j с синтаксисом как:
BasicConfigurator.configure (): автоматически и быстро используйте среду log4j по умолчанию.
PropertyConfigurator.Configure (String ConfigFilEname): чтение файлов конфигурации, написанных с использованием файлов функций Java.
Domconfigurator.configure (String FileName): чтение файлов конфигурации в форме XML.
3. Вставьте информацию о записи (информация о журнале формата)
Когда два предыдущих необходимых шага вы можете легко вставить операторы журнала разных уровней приоритетов в любом месте, где вы хотите регистрировать.
Logger.debug (сообщение объекта);
Logger.info (сообщение объекта);
Logger.warn (сообщение объекта);
Logger.error (сообщение объекта);
2.3
Каждый регистратор подвергается уровню журнала (уровень журнала) для управления выводом информации журнала. Уровни журналов делятся на:
A: Выключен самый высокий уровень для закрытия всех журналов.
B: Fatal указывает на то, что каждое событие критической ошибки приведет к выходу приложения.
C: Ошибка указывает, что, хотя происходит событие ошибки, оно все еще не влияет на продолжающуюся работу системы.
D: Теплый указывает, что будут потенциальные ситуации ошибок.
E: Информация, как правило, и на крупнозернистых уровнях, она подчеркивает всю работу приложения.
F: отладка обычно используется на мелкозернистых уровнях и очень полезна для отладки приложений.
G: Весь минимальный уровень, используемый для открытия всех журналов.
Вышеуказанные уровни определены в классе org.apache.log4j.level. Log4J рекомендует использовать только 4 уровня с приоритетом от высокого до низкого уровня, ошибки, предупреждения, информации и отладки. Используя уровень журнала, вы можете управлять выходной информацией журнала на соответствующем уровне в приложении. Например, если B используется, вся информация о журнале ниже уровня информации (например, отладка) в приложении не будет распечатана.
4. Используйте экземпляры log4j в веб -проектах
Приведенный выше код описывает простое применение log4j, и на самом деле, использование log4j настолько проста и удобно. Конечно, в дополнение к вышеуказанному методу конфигурации, есть другие вещи, такие как приложение J2EE при использовании Log4J в приложении J2EE, необходимо сначала загрузить файл конфигурации log4J. в web.xml.
1. Использование веб -приложений LOG4J в основном использует: Создайте новый сервлет, который выполняет конфигурацию для log4J в функции init. Как правило, он должен прочитать файл конфигурации. Поэтому вам необходимо настроить этот сервис в web.xml и установить загрузку на старте на 1.
2. Этот журнал конфигурации сервлета должен прочитать файл конфигурации, а затем вызовать функцию Configure. Здесь есть два вопроса: 1. Вам нужно знать, где находится файл;
3. Местоположение файла конфигурации можно настроить в Web.xml.
4. Обычно существует два типа типов файлов, один - файл свойств Java, а другой - XML -файл
Общее содержание файла конфигурации: log4j может указывать минимальный уровень уровня выходного журнала, а также формат выходного конфигурации журнала.
(1) Создать веб -проект, окончательный каталог всего проекта заключается в следующем
(2) Конфигурация web.xml заключается в следующем:
<? xml version = "1.0" Encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http: // java .sun.com/xml/ns/javaee "xsi: schemalocation =" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0 .xsd "id =" webApp_id "version =" 3.0 "> <Slame-name> loglearning </display-name> <servlet> <servlet-name> log4jtestservlet </servlet-name> <servlet-cl Ass> com.mucfc . Log4JTestServlet</servlet-class> </servlet> <!-- servlet used to start log4jConfigLocation --> <servlet> <servlet-name>Log4JInitServlet</servlet-name> <servlet-cla ss>com.mucfc.Log4JInitServlet </servlet-class> <init-param> <param-name> log4j-properties-location </param-mame> <param-value> /web-inf/classes/log4j.properties </param-value> <// init -param> <Load-on-startup> 1 </load-on-startup> </servlet> <servlet-mapping> <servlet-name> log4jtestservlet </servlet-name> <url-pattern>/test <// url -pattern> </servlet-mapping> </web-app>
(3) файл конфигурации log4j.properties
### Установить уровни журнала ###
log4j.rootlogger = Debug, stdout, d, e
log4j.appender.stdout = org.apache.log4j.consoseppender
log4j.appender.stdout.target = System.out
log4j.appender.stdout.layout = org.apache.log4j.patternlayout
log4j.appender.stdout.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd Hh: MM: SS, SSS} Метод:%l%n%m%n n
log4j.appender.d = org.apache.log4j.dailyrollingFileAppender
log4j.appender.d.file = f: //logs/log.log
log4j.appender.d.append = true
log4j.appender.d.threshold = отлад
log4j.appender.d.layout = org.apache.log4j.patternlayout
log4j.appender.d.layout.conversionpattern = %-d {yyyy-mm-dd hh: mm: ss} [ %t: %r]-[ %p] %m %n
log4j.appender.e = org.apache.log4j.dailyrollingFileAppender
log4j.appender.e.file = f: //logs/error.log
log4j.appender.e.append = true
log4j.appender.e.threshold = ошибка
log4j.appender.e.layout = org.apache.log4j.patternlayout
log4j.appender.e.layout.conversionpattern = %-d {yyyy-mm-dd hh: mm: ss} [ %t: %r]-[ %p] %m %n
(4) Сервлет инициализировался, как только появится веб -контейнер
Log4jintservlet.javapack com.mucfc; ; * Класс сервиса Log4jinitservlet */ @webservlet ("/ log4jinitservlet") открытый класс log4jinitservlet Extends httpservlet {private Static final Long S eraalversionuid = 1L; ); "); String log4jlocation = config.getInitParameter (" log4j-properties-location "); servletContext sc = config.getServletContext (); if (log4jlocation == nul l) {System.err.println (" *** no log4j- Файл инициализации инициализации свойств-локации, поэтому используйте BasicConfigurator для инициализации "); BasicConfigurator.configure ();} else {string webApppath = sc.getRealpath ("/"); string log4jprop = webapppath + l og4jlocation; файл yomamayesthissaysyomama = new File (log4jprop; файл yomamayesthissaysyomama = new File (log4jprop; файл yomamayesthissaysyomama = new ); ** " + log4jprop +" Файл не был найден, поэтому инициализировался с помощью BasicConfigurator "); BasicConfigurator.configure ();}} super.init (config);} /*** @see httpservlet#doget (httpservlectrequest est, est, Httppservlectresponse response) */ Защищенная void Doget (httpservletrequest, httpservletresponse ответ) Throws ServletException, ioException {// TODO Auto Generated Method Stub}/ ** *@see httpserverser vostsevonse) httpserverserverser voidserves Dopost (httpservletrequest-запрос, httpservletresponse response) throw s Servletexception, ioexception {// todo Автогенерированный метод stub}}Вызовой журнал log4jtestservlet, java
Пакет Com.mucfc; http .httpservletrequest; SerialVersionuid = 1L; * * * @see Servlet#init (ServletConfig) */ public void init (конфигурация ServletConfig) Throws ServletException {// TODO Auto Generated Method Stub}/ ** * @ см. httpservlet#Doget (httpservletrequest, httpservlece response) *//// Защищенная void Doget (httpservletrequest, httpservletresponse response) выбрасывает Servletexception, ioexception {// recored jebug information logger.debug («Это отладка. Сообщение. "); // Запись об уровне ошибки logger.error (" Это сообщение об ошибке ");} / ** * @see httpservlet#dopost (httpservletrequest, httpservletrespons Httpservletresponse response) Throws Servletexception, ioException {Doget (запрос, ответ);Далее работает, давайте посмотрим результаты:
Результат вывода:
5. Используйте log4j весной
Здесь нам нужно реализовать использование Spring в веб -проектах для использования log4j
(1) Подключитесь к вышеуказанному проекту, а затем импортируйте пружинный пакет
(2) web.xml добавлен
<!-установить root каталог-> <context-param> <param-name> webappootkey </param-name> <value> webapp.root </param-value> </context-param> <context- PARAM> <PARAM-name> log4jconfiglocation </param-name> <param-value> /web-inf/classes/log4j.properties </param-value> </context-param> <!-3000 Поток сканирует файл конфигурации каждые 60 секунд; > </context-param> <lallocer> <lloader-class> org.springframework.web.util.log4jconfiglistener </sluster-class> </sluster>
Весь контент заключается в следующем:
<? xml version = "1.0" Encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http: // java .sun.com/xml/ns/javaee "xsi: schemalocation =" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0 .xsd "id =" webApp_id "version =" 3.0 "> <Slame-name> loglearning </display-name> <servlet> <servlet-name> log4jtestservlet </servlet-name> <servlet-cl Ass> com.mucfc Log4jtestservlet </servlet-class> </servlet> <!-Сервлет, используемый для запуска log4jconfiglocation-> <!-<servlet> <servlet-name> log4jinitservlet </servlet-name> <vervlet -class> com. mucfc.log4jinitservlet </servlet-class> <init-param> <param-name> log4j-properties-location </param-anme> <param-value> /web-inf/classes/log4j.p roperties </param- Значение> </init-param> <load-on-startup> 1 </load-on-startup> </servlet>-> <servlet-mapping> <servlet-name> log4jtestservlet </servlet-name> <url -Pattern>/test </url-pattern> </servlet-mapping> <!-Загрузка контейнера Spring-> <delloader> <lisherer-class> org.springframework.web.context.contextlisterlistener </list Ener-Class > </alinger> <stext-param> <param-name> contextConfiglocation </param-name> <value> classPath: ApplicationContext.xml </param-value> </context-apar Am> <!-SET SET root Directory---> <Stext-param> <param-name> webAppootkey </param-name> <param-value> webapp.root </param-value> </context-param> <stext-param> <param- Имя> log4jconfiglocation </param-aname> <param-value> /web-inf/classes/log4j.properties </param-value> </context-param> <!-3000 Файл каждые 60 секунд изменяется; PARAM> <LEASTER> <LEASTER-CLASS> org.springframework.web.util.log4jconfiglistener </stirlicer-class> </sluster> </web-app>
Здесь log4jinitservlet.java эквивалентен бесполезному.
(2) ApplicationContext.xml
Нет контента:
<? xml version = "1.0" Encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org /2001/xmlschema-instance "xmlns: context =" http://www.springframework.org/schema/context "xmlns: aop =" http://www.springframework.org/sche ma/aop "xsi: schemalocation = "http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/aophttp: //www.springframework.org/schema/aophttp: //www.springframework.org/schema/aophtt Springframework.org/schema/aop/spring-aop-3.2.2.2.2.2.2.2.2.xsdhttp://www.springframework. "> </beans>
(3) Таким образом, журнал будет запущен с пружинным окном
После запуска программы журнал будет напечатан автоматически
log.log
error.log пуста, потому что он печатает только информацию выше уровня ошибок
Введите http: // localhost: 8080/loglearning2/test в браузере
Затем откройте файл
Подробный учебник по Java Log4J заканчивается здесь.