Я создаю приложение с помощью JHipster. Есть ли простой способ настроить приложение для создания файлов журнала для каждого отдельного дня? Я пробовал все в одном файле, но он стал большим, и это не очень хорошая практика. Я сделал это, добавив эту часть в конец моей команды запуска сервера:
>> console.info &
Logback-spring.xml:
<appender name = "FILE" class = "ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/log-file.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
</encoder>
</appender>
<appender name = "ASYNC" class = "ch.qos.logback.classic.AsyncAppender">
<queueSize>512</queueSize>
<appender-ref ref = "FILE"/>
</appender>
<logger name = "javax.activation" level = "WARN"/>
<logger name = "javax.mail" level = "WARN"/>
<logger name = "javax.xml.bind" level = "WARN"/>
<logger name = "ch.qos.logback" level = "WARN"/>
<logger name = "com.codahale.metrics" level = "WARN"/>
<logger name = "com.ryantenney" level = "WARN"/>
<logger name = "com.sun" level = "WARN"/>
<logger name = "com.zaxxer" level = "WARN"/>
<logger name = "io.undertow" level = "WARN"/>
<logger name = "io.undertow.websockets.jsr" level = "ERROR"/>
<logger name = "org.ehcache" level = "WARN"/>
<logger name = "org.apache" level = "WARN"/>
<logger name = "org.apache.catalina.startup.DigesterFactory" level = "OFF"/>
<logger name = "org.bson" level = "WARN"/>
<logger name = "org.elasticsearch" level = "WARN"/>
<logger name = "org.hibernate.validator" level = "WARN"/>
<logger name = "org.hibernate" level = "WARN"/>
<logger name = "org.hibernate.ejb.HibernatePersistence" level = "OFF"/>
<logger name = "org.springframework" level = "WARN"/>
<logger name = "org.springframework.web" level = "WARN"/>
<logger name = "org.springframework.security" level = "WARN"/>
<logger name = "org.springframework.cache" level = "WARN"/>
<logger name = "org.thymeleaf" level = "WARN"/>
<logger name = "org.xnio" level = "WARN"/>
<logger name = "springfox" level = "WARN"/>
<logger name = "sun.rmi" level = "WARN"/>
<logger name = "liquibase" level = "WARN"/>
<logger name = "LiquibaseSchemaResolver" level = "INFO"/>
<logger name = "sun.rmi.transport" level = "WARN"/>
<!-- https://logback.qos.ch/manual/configuration.html#shutdownHook and https://jira.qos.ch/browse/LOGBACK-1090 -->
<shutdownHook class = "ch.qos.logback.core.hook.DelayingShutdownHook"/>
<contextListener class = "ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>




Сконфигурируйте RollingFileAppender в logback-spring.xml вместо использования ConsoleAppender. См. https://logback.qos.ch/manual/appenders.html#RollingFileAppender
Logback-spring.xml, созданный JHipster, содержит всю конфигурацию продукта, вам просто нужно раскомментировать его.
<!-- The FILE and ASYNC appenders are here as examples for a production configuration -->
<appender name = "FILE" class = "ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
</encoder>
</appender>
<appender name = "ASYNC" class = "ch.qos.logback.classic.AsyncAppender">
<queueSize>512</queueSize>
<appender-ref ref = "FILE"/>
</appender>
<root level = "${logging.level.root}">
<appender-ref ref = "ASYNC"/>
</root>
Забудем про eclipse, он работает с mvnw или gradlew или запускает исполняемую войну? А еще я думал, что вы ищете решение для продуктов не в dev, потому что ваш вопрос не имеет большого смысла в dev.
Да конечно просто захотелось потестить. Итак, я создал файл .war с помощью maven. Я запустил его, и он все еще создает файл журнала, но все записывает в консоль. Как мне перенаправить вывод в файлы журнала?
Правильная конфигурация закомментирована в созданном вами файле logback-spring.xml, вам просто нужно раскомментировать его github.com/jhipster/jhipster-sample-app/blob/master/src/main /…, не забудьте appender-ref
Как вы можете видеть в отредактированном комментарии, это именно то, что я сделал, но он по-прежнему ничего не записывает в файлы журнала, кроме как в консоли. Стоит ли запускать программу с дополнительной командой?
Я не вижу appender-ref на корневом уровне в вашем вопросе, как в моем ответе
вы можете использовать этот код в своем собственном logback.xml
<appender name = "dailyRollingFileAppenderError" class = "ch.qos.logback.core.rolling.RollingFileAppender">
<File>${DEV_HOME}/error.log</File>
<encoder class = "ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d [%-5level] %logger{36} - %msg%n</Pattern>
</encoder>
<rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<FileNamePattern>${DEV_HOME}/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class = "ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<root level = "error">
<appender-ref ref = "dailyRollingFileAppenderError"/>
</root>
Я сделал это, и когда я запустил сервер в режиме разработки из eclipse, он создал файл на сегодняшний день, но он все время пуст