我正在尝试实现这个条件:根据另一个字段的值需要字段,即如果请求带有"index":"true",则需要"id"元素:true.
这是一个示例模式:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "test title",
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/Item"
},
"minItems": 0
}
},
"required": [
"data"
],
"definitions": {
"Item": {
"type": "object",
"properties": {
"id": {
"type": [
"integer",
"string"
]
},
"type": {
"type": "string"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何实施?
任何指针都会有所帮助.
我正在尝试使用 log4j2(2.0.2) 和 10 个日志文件在 tomcat 7.0.23 中配置 RollingFile appender。
我在 filePattern 中使用 ${sys:catalina.base},它不起作用,日志文件放在 tomcat/bin/${sys:catalina.base}/ 目录中。
有趣的部分是第一个日志文件(没有数字)在 tomcat/logs 下创建正常 - 这意味着它成功地将文件名属性映射到真实路径。
当我用 filePattern="C:/apache-tomcat-7.0.23/logs/app.%i.log" 替换 ${sys:catalina.base} 时,它可以工作。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%X{REQ_ID}] [%c{1}] %m%n"/>
</Console>
<RollingFile name="FILE" fileName="${sys:catalina.base}/logs/app.log"
filePattern="${sys:catalina.base}/logs/app.%i.log">
<PatternLayout pattern="%d %-5p [%X{REQ_ID}] [%c{1}] %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</Root>
</Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)
这意味着 filePattern 没有正确解释。
如何在不必静态指定日志目录的情况下克服这个问题?
谢谢您的帮助