Java 如何使用vertx-default-jul-logging.properties文件来控制文件的格式和数量?
我正在与这个叫我使用的Vertx软件包斗争。 所有日志记录都要使用Vertx(io.Vertx.core.logging.Logger)完成 我今天可以使用vertx-default-jul-logging.properties文件注销到一个文件。 我一直坚持的是这三件事。(是的,我已经在网上阅读了很多文档。我只需要看到一个完整的工作属性文件,里面有写出来的内容) 1.如何指定多个输出文件,以便某些文件转到mmddyy class.method.log 第二个文件是mmddyy audit.logJava 如何使用vertx-default-jul-logging.properties文件来控制文件的格式和数量?,java,vert.x,Java,Vert.x,我正在与这个叫我使用的Vertx软件包斗争。 所有日志记录都要使用Vertx(io.Vertx.core.logging.Logger)完成 我今天可以使用vertx-default-jul-logging.properties文件注销到一个文件。 我一直坚持的是这三件事。(是的,我已经在网上阅读了很多文档。我只需要看到一个完整的工作属性文件,里面有写出来的内容) 1.如何指定多个输出文件,以便某些文件转到mmddyy class.method.log 第二个文件是mmddyy audit.lo
感谢您的帮助。您应该先阅读官方文档中的小章节。重要的是,它解释了即使JUL是默认值,如果您愿意,也可以使用任何其他日志框架:
- log4j
- slf4j
- log4j2
# here you specify who's going to handle the logs
# for this example I'll use only the console
handlers=java.util.logging.ConsoleHandler
# now you specify the format
java.util.logging.SimpleFormatter.format=%5$s %6$s\n
# and now you tell the console to use that format
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
这些是配置的基础,为了控制格式,这里指定了语法首先,如果您仍然想使用JUL,请放弃此答案;否则,继续阅读 我正在使用Vert.x
3.3.3
并将所有日志通过/重定向到Log4J 2.x-类似的方法适用于Logback/SLF4J
您首先需要添加/包括这些依赖项(我使用的是Gradle;如果可用,请更新版本):
然后创建一个名为${projectRoot}/src/main/resources/log4j2.xml的文件,并向其中添加以下“内容”:
这样就可以了——但是使用log4j2.x。请记住,Vert.x本质上(或某种程度上)是异步的,并且此配置还使用异步记录器,因此需要(awesome IMO)LMAX Disruptor
还请注意,您需要更改应用程序的包名(请参阅AsyncLogger
定义;我使用了your.package.name
),并最终更改所需格式的日志模式。我昨天一整天都在尝试您提到的内容。今天,我清除了我的整个属性文件,只输入了最基本的属性,比如您拥有的属性。输出的格式永远不会改变。我能想到的唯一一件事是,它正在从我不知道的其他区域读取属性文件。如果您正在使用该方法,或者如果您正在使用其他方法运行,则需要在fat jar中提供该文件,您需要使用以下方法启动jvm:java-Djava.util.logging.config.file=your-config.properties…
compile 'com.lmax:disruptor:3.3.5'
compile 'org.apache.logging.log4j:log4j-1.2-api:2.7'
compile 'org.apache.logging.log4j:log4j-jcl:2.7'
compile 'org.apache.logging.log4j:log4j-jul:2.7'
compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.7'
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="log-pattern">%d{MM-dd-yyyy HH:mm:ss.SSS} |- %highlight{%5p}{TRACE=blue, DEBUG=green, INFO=green, WARN=yellow, ERROR=red, FATAL=red} in %style{%C{1}:%L}{cyan} [%style{%t}{magenta}] - %m%n</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${log-pattern}" />
</Console>
</Appenders>
<!-- Logger levels: trace, debug, info, warn, error, fatal -->
<Loggers>
<AsyncLogger name="your.package.name" level="DEBUG" additivity="false" includeLocation="true">
<AppenderRef ref="Console" />
</AsyncLogger>
<Root level="WARN">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
...
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public final class Application extends AbstractVerticle {
final Logger LOGGER = LogManager.getLogger();
...
}