В разделе Spring Boot я попытался использовать Log4j для Logstash и добавить файл log4j.properties в каталоге SRC/Main/Resources, чтобы настроить файл журнала вывода, но он не удался. Настройка пути журнала в Application.yml. Печать журнала была успешно напечатана, но журнал файлов журнала не удалось успешно отладкой. Я проверил информацию в Интернете и сказал, что Spring Boot использует журналы «Запись» для записи журналов по умолчанию. После многих попыток Log4J потерпел неудачу, поэтому он изменился, чтобы зарегистрироваться, и окончательный тест был успешным.
1. Есть ли у вас вопросы о пути файла журнала Spring Boot?
Logging.Path и Logging. Свойства файлов настроены одновременно, следующим образом:
Журнал: PATH: /var /log File: test.log
Только файл test.log будет сгенерирован в соответствии с корневым путем проекта, а файл журнала не будет генерироваться в соответствии с указанным пути (ожидаемый путь журнала: logging.path + logging.file).
Причина: в Spring Boot вам нужно только настроить одно из двух свойств: logging.path и logging.file. Если настроен одновременно, используйте атрибут logging.file.
Когда свойство loggin.path настроено, в этом пути будет сгенерирован файл Spring.Log, то есть имя файла журнала по умолчанию используется в настоящее время.
Когда свойство loggin.file настроено, файл журнала с указанным именем генерируется под указанным пути. По умолчанию является относительный путь проекта, и вы можете указать абсолютный путь для регистрации.
регистрация:
PATH:/var/logs # генерируйте файл spring.log в/var/logs файл каталога: /var/logs/test.log # генерировать файл test.log в каталоге/var/logs
2. Причины замены замены log4j:
Вот выдержки из Интернета:
Резервник и log4j очень похожи. Если вы знакомы с log4j, то есть будет очень легко привыкнуть к нему. Ниже приведены некоторые преимущества заказа по сравнению с log4j:
1. Ядро, которое реализует резерв быстрее, было переписано, и производительность улучшается более чем в 10 раз по некоторым путям выполнения ключей. Более того, журнал не только улучшает производительность, но и загружает начальную память.
2. Очень достаточный резерв тестирования через несколько лет, бесчисленные часы тестирования. Тесты журнала совершенно разные. С точки зрения автора, просто важно выбрать защитник вместо log4j.
3. Отправить CROSCACK-CLASSIC Реализации SLF4J очень естественно. Логовое классическое орудия SLF4J. При использовании SLF4J вы не можете даже чувствовать себя не в порядке. А поскольку резервируйте в сфере логического класса SLF4J очень естественно, переход на log4j или другой очень прост. Можно просто предоставить его в другой пакет JAR, и нет необходимости касаться кода, реализованного через SLF4JAPI.
4. Очень достаточные документы, официальный сайт имеет более 200 страниц документов.
5. автоматически перезагрузить файл конфигурации. Когда файл конфигурации изменен, Logack-Classic может автоматически перезагрузить файл конфигурации. Процесс сканирования быстрый и безопасный, и он не требует создания другого сканирующего потока. Эта технология полностью гарантирует, что приложение может счастливо работать в среде JEE.
6. Лилит, Лилит является наблюдателем событий журнала, похожая на бензопилу log4j. Лилит также может обрабатывать большие объемы данных журнала.
7. Режим осторожности и очень дружелюбное выздоровление. В режиме осторожности несколько экземпляров FileAppender, выполняемых по нескольким JVM, и могут безопасно записать один и тот же файл журнала. RollingFileAppender будет иметь некоторые ограничения. FileAppender и его подклассы, в том числе RollingFileAppender, способны восстанавливаться после исключений ввода/вывода очень дружелюбно.
8. Файлы конфигурации могут обрабатывать различные ситуации. Разработчики часто должны судить, что различные файлы конфигурации защитника находятся в разных средах (разработка, тестирование, производство). И эти файлы конфигурации лишь немного отличаются и могут быть реализованы, и поэтому файл конфигурации может адаптироваться к нескольким средам.
9. Фильтры, иногда, нужно диагностировать проблему и регистрировать ее. В log4J уровень журнала может быть уменьшен только, но это даст большое количество журналов и повлияет на производительность приложения. В защите вы можете продолжать поддерживать этот уровень журнала и устранять некоторые особые ситуации. Например, пользователь, который вошел в систему, ее журнал будет нанесен на уровне отладки, а другие пользователи могут продолжать нажимать на уровне Warn. Для реализации этой функции требуются только 4 строки конфигурации XML. Вы можете обратиться к MDCFilter.
10. SiftingAppender (очень многофункциональный приложение) его можно использовать для разделения файлов журнала на основе любых заданных параметров. Например, SiftingAppender может отличить события журнала от продолжения сеанса пользователя, а затем у каждого пользователя будет файл журнала.
11. Автоматически сжатие журнала, который был напечатан. Когда генерируется новый файл, файл журнала, который был напечатан, будет автоматически сжат. Сжатие является асинхронным процессом, поэтому даже для больших файлов журнала приложения не будут затронуты в процессе сжатия.
12. Дерево стека имеет версию пакета. ROGACK принесет данные пакета, когда он будет опубликован.
13. автоматически удалять старые файлы журнала. Установив свойство Maxhistory на временной базероллингполисии или sizeandtimebasedfnatp, вы можете управлять максимальным количеством сгенерированных файлов журнала. Если установлен Maxhistory 12, эти файлы журнала, которые были более 12 месяцев, будут автоматически удалены.
Короче говоря, логика лучше, чем log4j. Позвольте нам построить все наши приложения в защите!
3. Ввести резерв в проект
Добавить зависимости от пакета, стиль Maven:
<depervice> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-logging </artifactid> </depervice> <dehyedency> <groupid> net.logstash.logback </GroupId> <strifactid> logstash-logback-encoder </artifactid> regifact> 4.11 </11 </11 </11 </11 </11 </11 </11 </11 </11 </11 </artifact> </artifact> 4.11 </artifact>. <groupId> net.logstash.log4j </GroupId> <artifactId> jsoneVenventv-layout </artifactId> <sersive> 1.7 </version> </gethipency>
4. Добавить logback.xml
Добавьте файл resurback.xml в каталог src/main/resources, и система автоматически загрузит конфигурацию restback.xml.
rogack.xml:
<? xml version = "1.0" Encoding = "UTF-8"?> <configuration scan = "true" scanperiod = "60 секунд" debug = "false"> <include resource = "org/springframework/boot/logback/base.xml"/> <contextname> logback </contextname> <!-log-log files в completore-> </> <. value = "e: //test//logback.log"/>-> <name = "log.path" value = "/user/chang/chant/desktop/chlogs/brogback.log"/> <name = "stash"> <назначение> 192.168.220.83:9601 </doneturn> <encoder/> </ancoder/> </ancoder/> </ancoder/> </ancoder/> </ancoder/> </ancoder/> </ancoder/> </ancoder/> </ancoder/> </ancoder/> </appender> <! name = "console"> <!-<Filter> <Level> ошибка </level> </filter>-> <coder> <Tlement> %d {hh: mm: ss.sss} %contextname [ %] %-5level %logger {36}- %msg %n </pattern> </encoder> </appende> <! <file> $ {log.path} </file> <lllingpolicy> <filenamepattern> rescack. %d {yyyy-mm-dd} .log </filenamepattern> </rollingpolicy> <concoder> <Temter> %d {hh: mm: ss.sss} %[ %]. %msg %n </pattern> </encoder> </appender> <root level = "info"> <appender-ref ref = "Stash"/> <appender-ref ref = "Консоль"/> <appender-ref ref = "file"/> </root> <!-logback-это пакет в java <logger name = com.dudu.controller "/logback. Class <name = "com.dudu.controller.learncontroller" level = "warn" addate = "false"> <appender-ref ref = "console"/> </logger>-> </configuration>5. Выпуск версии Logstash-Logback-Encoder
В Spring-Boot, если вы используете Logstash-Logback-Encoder, вам может потребоваться сообщить Maven конкретный номер версии, чтобы избежать конфликтов зависимости от пакета. Например, вы можете установить зависимости отгонка CORCE-CORE, CORMACK-CLASSIC и ACCESS, как следующее:
<properties> <CH.QOS.Logback.version> 1.2.3 </ch.qos.logback.version> </свойства> <DegeDendanceManagement> <Depectientdess> <dehyederies> <groupid> ch.qos.logback </GroupId> <artifactid> </artifactid> <persion> $ a <pressback. <dependency> <groupid> ch.qos.logback </GroupId> <artifactid> logback-classic </artifactid> <sersive> $ {ch.qos.logback.version} </version> </repertive> <dependency> <groupid> ch.qos.logback </GroupD> <strifactId> <Depect-access </artifactid> <serse> $ {CH.QOS.Logback.version} </version> </deperency> </dependency> </dependencymanagement>6. Служба Logstash Construction
См.
1.logstash-logback-encoder
Суммировать
Выше приведено метод использования Logack, Logstash и Elk для записи файлов журналов в Spring Boot, представленном вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!