我正在阅读Log4j2的配置部分。http://logging.apache.org/log4j/2.x/manual/configuration.html
<Appenders>
<Console name="STDOUT">
<PatternLayout pattern="%m%n"/>
</Console>
<List name="List">
<ThresholdFilter level="debug"/>
</List>
<Routing name="Routing">
<Routes pattern="$${sd:type}">
<Route>
<RollingFile name="Rolling-${sd:type}" fileName="${filename}"
filePattern="target/rolling1/test1-${sd:type}.%i.log.gz">
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<SizeBasedTriggeringPolicy size="500" />
</RollingFile>
</Route>
<Route ref="STDOUT" key="Audit"/>
<Route ref="List" key="Service"/>
</Routes>
</Routing>
</Appenders>
双$$符号是什么意思?e、 g.$${sd:type}?
您可以如下设置配置元素的属性status=“DEBUG”:
<Configuration status="DEBUG">
<properties>
<property name="LOG_HOME">logs</property>
</properties>
然后按照以下两个步骤记录日志:
Set filePattern=“${LOG\u HOME}/${date:yyyyy-MM}/all-%d{yyy-MM-dd}.LOG.gz”
记录的日志:filePattern=“logs/2021-06/all-%d{yyyy-MM-dd}.log.gz”
设置filePattern="${LOG_HOME}/${date: yyyy-MM}/all-%d{yyyy-MM-dd}。log.gz"
记录的日志:filePattern=“logs/${date:yyyy-MM}/all-%d{yyyy-MM-dd}.log.gz”
现在你知道他们的区别了。Double$表示将根据后一个上下文动态计算结果。它是动态计算的占位符。
似乎$
用作转义字符。正如Log4J文档中所述,Log4J配置文件解析器使用apachecommons Lang的StrSubstitutor
,而StrSubstitutor
的文档说明:
另一种可能是使用转义字符,默认情况下为“$”。如果将此字符放置在变量引用之前,则将忽略此引用,并且不会替换它。例如:
必须使用变量$${${name}}
我猜他们希望将该值设置为
“${sd:type}”
,以便稍后在运行时对该变量进行计算。这里有一个很好的例子/解释:http://logging.apache.org/log4j/2.x/manual/lookups.html#ContextMapLookup
问题内容: 例如,它是Jikes RVM堆栈的一部分。 “访问”应为方法名称。但是我检查了类源代码及其接口,没有所谓的“访问”方法。我在Google上找不到答案,因为Google讨厌各种标点符号。有人可以帮忙吗?非常感谢。 问题答案: 引用@birryree链接的文章: 如果一个类将另一个类包围,或者如果它们被一个公共类包围,则另一个类D可以使用C类的私有成员m。由于虚拟机不知道这种分组方式, 因
问题内容: 我正在看有角度的1.2源代码,我很好奇为什么某些函数以两个美元符号开头。这是某种约定吗? 问题答案: 单个,用于保留公共标识符 保留 专用 标识符的双精度 引用文档: $前缀命名约定 … 如果您检查范围,您可能还会注意到一些以$$开头的属性。这些属性被认为是私有的,不应访问或修改。
问题内容: 在Makefile中插入shell脚本时,我们可以使用双美元符号($$)来引用变量。为什么会这样? 问题答案: 按照gnu make官方文档: 配方中的变量和函数引用与makefile中其他位置的引用具有相同的语法和语义。它们也具有相同的报价规则:如果您希望在配方中出现美元符号,则必须将其加倍(’$$’)。对于使用美元符号引入变量的外壳(如默认外壳),请务必牢记要引用的变量是make变
在Spring YAML配置文件中,我需要有一个参数,例如 其中< code>${app-name}在运行时被Java代码动态替换,我不希望Spring在启动时替换它。 为了实现这一点,我需要转义字符,以便Spring不会将其解释为SpEL。 以下答案在YAML不适用: > 如何逃脱EL美元符号? Spring属性文件中的转义属性引用 如果包含美元符号(${var}),则无法读取属性 我尝试了所有
本文向大家介绍MyBatis中#号与美元符号的区别,包括了MyBatis中#号与美元符号的区别的使用技巧和注意事项,需要的朋友参考一下 #{变量名}可以进行预编译、类型匹配等操作,#{变量名}会转化为jdbc的类型。 假设id的值为12,其中如果数据库字段id为字符型,那么#{id}表示的就是'12',如果id为整型,那么id就是12,并且MyBatis会将上面SQL语句转化为jdbc的selec
我已经在hive:udfrowsequence中尝试过这个UDF。 但是它不产生唯一的值,即它依赖于映射器重复序列。 假设我有一个文件(有4条记录)在HDFS中可用。它将为该作业创建一个映射器,结果将类似于 1 2 3 4 1 2 3 4 1 2 。