我在类路径中有一个log4j2.xml配置文件.其中一个appender是File appender,我想在Java应用程序中的运行时设置目标文件名.
根据文档,我应该能够在log4j2.xml文件中使用双"$"和上下文前缀:
<appenders>
<File name="MyFile" fileName="$${sys:logFilename}">
<PatternLayout pattern="%-4r %d{${datestamp}} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</appenders>
Run Code Online (Sandbox Code Playgroud)
其中"sys"前缀表示Configurator将在系统属性中查找属性"logFilename".所以在应用程序中,我打电话(相当早):
System.setProperty("logFilename", filename);
Run Code Online (Sandbox Code Playgroud)
我还在xml文件中打开了log4j2的自动重新配置:
<configuration status="debug" monitorInterval="5">>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这没有任何效果,并且永远不会创建日志文件.一些log4j2状态输出如下:
2013-02-13 15:36:37,574 DEBUG在类org.apache.logging.log4j.core.appender.FileAppender上调用createAppender for element with params(fileName ="$ {sys:logFilename}",append ="null" ,locking ="null",name ="MyFile",immediateFlush ="null",suppressExceptions ="null",bufferedIO ="null",PatternLayout(% - 4r%d {yyyy-MM-dd/HH:mm:ss .SSS/zzz} [%t]%-5level%logger {36} - %msg%n),null)
2013-02-13 15:36:37,576 DEBUG启动FileManager $ {sys:logFilename}
如何在运行时设置File Appender中的"fileName"值? 或者,如何在运行时向根记录器添加新的File Appender?在Log4j 2.0中,大多数用于更改配置的API都是隐藏的.
我已经审查了所有现有的问题/答案,但仍然无法获得有效的解决方案,所以我将不胜感激以下对我的特定代码的任何评论.
我宁愿不在我的代码中使用硬编码图像大小(像素计数),我愿意在解决方案中使用Less,CSS或Javascript的组合.
图像应在Bootstrap列中垂直和水平居中,即使屏幕调整大小,也应保持居中.
我的HTML:
<div class="container-fluid">
<div class="container">
<div class="row">
<div class="col-md-5">
<div class="panel">
Some content
</div>
</div>
<div class="col-md-2">
<img src="images/myimage.png" class="img-responsive center-block">
</div>
<div class="col-md-5">
<div class="panel>
Some content
</div>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)