我需要以编程方式设置File appender.
我想在log4j2.xml上设置我的appenders 但是我想在运行时只编程(编程)到其中一个appender.
<Configuration status="WARN">
<Appenders>
<File name="File_1" fileName="c:/FILE_1.log" >
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name="File_2" fileName="c:/FILE_2.log" >
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name="File_3" fileName="c:/FILE_3.log" >
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="File_1"/>
<AppenderRef ref="File_2"/>
<AppenderRef ref="File_3"/>
</Root>
</Loggers>
Run Code Online (Sandbox Code Playgroud)
例:
if(condition.equals("A")){
//write log on File_1
}else if(condition.equals("B")){
//write log on File_2
}else {
//write log on File_3
}
Run Code Online (Sandbox Code Playgroud)
查看Internet中的各种教程,他们解释了如何在运行时以编程方式添加appender; 有没有办法在运行时选择只有一个在xml配置文件中定义的appender?
第一个解决方案:
我试图通过以下方式解决问题,但我对我的解决方案不满意,因为log4j2.xml中定义的文件没有以编程方式删除 …
我创建了以下页面:
<div id="mypage" data-role="page" data-theme="w">
<div id="header" data-role="header" class="ui-noboxshadow ui-header-fixed" data-position="fixed">
</div>
<div data-role="content">
<p class="detail-row" style="margin-top: 1em;"><span class="detail-value">{mypage.currentDate}</span></p>
<p class="detail-row" style="margin-top: 1em;"><span class="detail-value"><img id="myimage_id" src="{mypage.myimage}" /></span></p>
<p class="detail-row" style="margin-top: 1em;"><span class="detail-value">{mypage.mytitle}</span></p>
<p class="detail-row"><span class="detail-value">{mypage.mydescription}</span></p>
</div>
<div id="footer" data-role="footer" data-position="fixed" data-theme="g" class="ui-noboxshadow" data-tap-toggle="false">
</div>
Run Code Online (Sandbox Code Playgroud)
它运行良好(mypage.currentDate,mypage.mytitle,mypage.mydescription占位符已正确解析),除了mypage.image占位符:它未解析(我获取此url:/% 7Bmypage.myimage%7D)
调试javascript我看到mypage.myimage在模型中包含正确的值,那么为了解决img src属性中的路径,当前的语法是什么?
例:
如果我试着写:
{} mypage.myimage
它被正确翻译成/contextroot/images/image.jpg
但
如果我写它是转换进来的 <img src="/%7Bmypage.myimage%7D" />
它没有翻译,变量没有解决!
我已经实现了以下简单的HTTP适配器,以便将自己介绍给Worklight Adapters.它工作正常.
但是,我无法在Eclipse Worklight控制台中看到我的WL.logger.debug陈述!
我已尝试配置logging.properties和server.xml,如本信息中心文章中所示,但它不显示调试行(请求和结果).
有什么建议?
JS:
function currencyConvertor(data) {
var request =
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ConversionRate xmlns="http://www.webserviceX.NET/">
<FromCurrency>{data.fromCurrency}</FromCurrency>
<ToCurrency>{data.toCurrency}</ToCurrency>
</ConversionRate>
</soap:Body>
</soap:Envelope>;
WL.Logger.debug("request start ---------");
WL.Logger.debug(request);
WL.Logger.debug("request end --------");
var input = {
method : 'post',
returnedContentType : 'xml',
path : '/CurrencyConvertor.asmx',
body: {
content: request.toString(),
contentType: 'text/xml; charset=utf-8'
}
};
var result = WL.Server.invokeHttp(input);
WL.Logger.debug("result start ---------");
WL.Logger.debug(result);
WL.Logger.debug("result end --------");
return result.Envelope.Body;
}
Run Code Online (Sandbox Code Playgroud) 我需要一个理论上的澄清...... Javascript表单提交和包含提交按钮的表单有什么区别?(我正在使用框架Struts,但我认为它不会影响行为)
我的意思是,这是我的例子,提交表单与输入类型="提交"之间的区别是什么:
<html:form action="search.do?method=mySearch" method="post" styleId="searchFilterForm">
<input type="hidden" name="myfield" value="">
<table border="0" class="filterclass" width="530px">
<tr>
<td class="filterheader" align="center">
<input type="submit" onclick="doMySubmit()" name="MyList" value="SEND" class="button actionbutton" />
</td>
</tr>
</table>
</html:form>
function doMySubmit() {
var myform = document.getElementById('searchFilterForm');
myform.myfield.value = "Hello World";
}
Run Code Online (Sandbox Code Playgroud)
<html:form action="search.do?method=mySearch" method="post" styleId="searchFilterForm">
<table border="0" class="filterclass" width="530px">
<tr>
<td class="filterheader" align="center">
<input type="button" onclick="doMySubmit()" name="MyList" value="SEND" class="button actionbutton" />
</td>
</tr>
</table>
</html:form>
function doMySubmit() {
var myform = document.getElementById('searchFilterForm');
myform.myfield.value = "Hello World";
myform.submit();
} …Run Code Online (Sandbox Code Playgroud)