属性名称 | 描述 |
advertiser | (可选)将用于通知单独的FileAppender或SocketAppender配置的Advertiser插件名称。提供的唯一的Advertiser插件是“multicastdns”。 |
dest | “err”,将输出到stderr,或文件路径或URL。 |
monitorInterval | 检查更改文件配置之前经过的最短时间(以秒为单位)。 |
name | 配置的名称。 |
packages | 逗号分隔的包名称列表用来搜索插件。每个类加载器只加载一次插件,所以更改此值可能不会对重新配置产生任何影响。 |
schema | 标识类加载器定位用于验证配置的XML模式的位置。仅当strict设置为true时有效。如果未设置,则不会执行模式验证。 |
shutdownHook | 指定当JVM关闭时Log4j是否应自动关闭。关闭挂钩默认启用,但可以通过将此属性设置为“disable”来禁用 |
shutdownTimeout | 指定当JVM关闭时,追加器和后台任务将被关闭几毫秒。默认值为零,这意味着每个appender都使用其默认超时,并且不要等待后台任务。并不是所有的追加者都会尊重这一点,这是一个提示,而不是一个绝对的保证,关机过程不会花费更长时间。将此值设置得太低会增加未写入最终目的地的未完成日志事件的风险。请参阅LoggerContext.stop(long,java.util.concurrent.TimeUnit)。(如果shutdownHook设置为“disable” ,则不使用。) |
status | 应该记录到控制台的内部Log4j事件的级别。此属性的有效值为“trace”,“debug”,“info”,“warn”,“error”和“fatal”。Log4j将向状态记录器记录有关初始化,翻转和其他内部操作的详细信息。如果您需要对log4j进行故障排除,则设置status="trace"是你可用的第一个工具之一。 |
strict | 允许使用严格的XML格式。在JSON配置中不支持。 |
verbose | 加载插件时启用诊断信息。 |
前缀 | 上下文 |
bundle | 资源束。格式为$ {bundle:BundleName:BundleKey}。捆绑包名称遵循包命名约定,例如: $ {bundle:com.domain.Messages:MyKey}。 |
ctx | 线程上下文映射(MDC) |
date | 使用指定的格式插入当前日期和/或时间 |
env | 系统环境变量 |
jndi | 在默认的JNDI上下文中设置的值。 |
jvmrunargs | 通过JMX访问的JVM输入参数,但不是主要参数; 请参阅[RuntimeMXBean.getInputArguments](http://docs.oracle.com/javase/6/docs/api/java/lang/management/RuntimeMXBean.html#getInputArguments--)在Android上不可用 |
log4j | Log4j配置属性。表达式```${log4j:configLocation}```和```${log4j:configParentLocation}```分别提供给log4j的配置文件和它的父文件夹的绝对路径。 |
main | 使用 MapLookup.setMainArguments(String[])设置的值 |
map | 来自MapMessage的值 |
sd | 来自StructuredDataMessage的值。“id”将返回没有企业号的StructuredDataId的名称。“type”将返回消息类型。其他键将从Map中取回单个元素。 |
sys | 系统属性 |
Parameter Name | Type | Description |
filter | Filter | 一个过滤器,用于确定事件是否应由此Appender处理。使用CompositeFilter可以使用多个Filter。 |
layout | Layout | 用于格式化LogEvent的布局。如果没有提供布局,将使用“%m%n”的默认模式布局。 |
follow | boolean | 确定appender是否通过配置后通过System.setOut或System.setErr来重新分配System.out或System.err。请注意,该属性不能与Windows上的Jansi一起使用。不能与【direct】属性一起使用 |
direct | boolean | 直接写入```java.io.FileDescriptor```并绕过java.lang.System.out/.err。当输出重定向到文件或其他进程时,可以放弃10倍的性能提升。在Windows上无法与Jansi一起使用。不能与【follow】使用 |
name | String | Appender的名称。 |
ignoreExceptions | boolean | 默认值true,导致在将事件附加到内部记录然后被忽略时遇到异常。当设置为false异常将被传播到调用者。将此Appender包装在[FailoverAppender]中时, 必须将其设置为false。 |
target | String | SYSTEM_OUT或SYSTEM_ERR。默认值为“SYSTEM_OUT”。 |
Parameter Name | Type | Description |
filter | Filter | 一个过滤器,用于确定事件是否应由此Appender处理。使用CompositeFilter可以使用多个Filter。 |
primary | String | 要使用的主要Appender的名称。 |
failovers | String[] | 次顺序要使用的Appenders列表 |
name | String | Appender的名称. |
retryIntervalSeconds | integer | 在重试主Appender之前应该通过的秒数。默认值为60。 |
ignoreExceptions | boolean | 默认值为true,导致在将事件附加到内部记录然后被忽略时遇到异常。当设置为false异常将被传播到调用者。 |
target | String | "SYSTEM_OUT"或者"SYSTEM_ERR". 默认是"SYSTEM_ERR". |
Parameter Name | Type | Description |
append | boolean | 当为true时,默认情况下,记录将追加到文件的末尾。当设置为false时,文件将在新记录写入之前被清除。 |
bufferedIO | boolean | 当为true时,默认情况下,记录将被写入缓冲区,当缓冲区已满时,数据将被写入磁盘,或者如果immediateFlush置位,写入该记录。文件锁定不能与bufferedIO一起使用。性能测试表明,即使启用immediateFlush,使用缓冲I / O可显着提高性能。 |
bufferSize | int | 当bufferedIO为真时,这是缓冲区大小,默认为8192字节。 |
createOnDemand | boolean | Tappender按需创建文件。当日志事件通过所有过滤器并被路由到该appender时,appender仅创建该文件。默认为false。 |
filter | Filter | 一个过滤器,用于确定事件是否应由此Appender处理。使用CompositeFilter可以使用多个Filter。 |
fileName | String | 要写入的文件的名称。如果文件或其任何父目录不存在,将创建它们。 |
immediateFlush | boolean | 当设置为true - 默认值时,每次写入后都会进行刷新。这将保证数据写入磁盘,但可能会影响性能。每次写入后刷新仅在使用具有同步记录器的该追加器时才有用。异步记录器和追加器将在一批事件结束时自动刷新,即使immediateFlush设置为false。这也保证了数据被写入磁盘,但效率更高。 |
layout | Layout | 用于格式化LogEvent的布局。如果没有提供布局,将使用“%m%n”的默认模式布局。 |
locking | boolean | 当设置为true时,只有在保留文件锁定的情况下才会发生I / O操作,允许多个JVM中的FileAppenders和可能的多个主机同时写入同一个文件。这将显着影响性能,所以应该仔细使用。此外,在许多系统上,文件锁是“咨询”,意味着其他应用程序可以对文件执行操作,而无需获取锁定。默认值为false。 |
name | String | Appender的名称。 |
ignoreExceptions | boolean | 默认值为true,导致在将事件附加到内部记录然后被忽略时遇到异常。当设置为false异常将被传播到调用者。将此Appender包装在FailoverAppender中时, 必须将其设置为false。 |
Parameter Name | Type | Description |
name | String | Appender的名称。 Required |
ignoreExceptions | boolean | 默认值为true,导致在将事件附加到内部记录然后被忽略时遇到异常。当设置为false异常将被传播到调用者。将此Appender包装在FailoverAppender中时, 必须将其设置为false。 |
filter | Filter | 一个过滤器,用于确定事件是否应由此Appender处理。使用CompositeFilter可以使用多个Filter。 |
bufferSize | int | 如果一个大于0的整数,这会导致appender缓冲日志事件,并在缓冲区达到此大小时进行刷新。 |
connectionSource | ConnectionSource | 应检索数据库连接的连接源。Required. |
tableName | String | 将日志事件插入的数据库表的名称。Required |
columnConfigs | ColumnConfig[] | 有关记录日志事件数据的列的信息应该如何插入以及如何插入该数据。这由多个 |
columnMappings | ColumnMapping[] | 列映射配置列表。每列必须指定列名。每列可以具有由其完全限定类名指定的转换类型。默认情况下,转换类型为String。如果配置的类型与 ReadOnlyStringMap / ThreadContextMap 或 ThreadContextStack分配兼容,则该列将分别由MDC或NDC填充(这是特定于数据库的如何处理插入Map或List值)。如果配置的类型与java.util.Date分配兼容,则日志时间戳将转换为配置的日期类型。如果配置的类型与java.sql.Clob 或java.sql.NClob分配兼容,则格式化的事件将分别设置为Clob或NClob(类似于传统的ColumnConfig插件)。如果给出了一个文字属性,那么它的值将按照INSERT查询中的原样使用,而不进行任何转义。否则,指定的布局或模式将被转换为已配置的类型并存储在该列中。日期,则日志时间戳将转换为配置的日期类型。如果配置的类型与java.sql.Clob或java.sql.NClob分配兼容,则格式化的事件将分别设置为Clob或NClob(类似于传统的ColumnConfig插件)。如果给出了一个文字属性,那么它的值将按照INSERT查询中的原样使用,而不进行任何转义。否则,指定的布局或模式将被转换为已配置的类型并存储在该列中。日期,则日志时间戳将转换为配置的日期类型。如果配置的类型与java.sql.Clob或java.sql.NClob分配兼容,则格式化的事件将分别设置为Clob或NClob(类似于传统的ColumnConfig插件)。如果给出了一个文字属性,那么它的值将按照INSERT查询中的原样使用,而不进行任何转义。否则,指定的布局或模式将被转换为已配置的类型并存储在该列中。如果配置的类型与java.sql.Clob或java.sql.NClob分配兼容,则格式化的事件将分别设置为Clob或NClob(类似于传统的ColumnConfig插件)。如果给出了一个文字属性,那么它的值将按照INSERT查询中的原样使用,而不进行任何转义。否则,指定的布局或模式将被转换为已配置的类型并存储在该列中。如果配置的类型与java.sql.Clob或java.sql.NClob分配兼容,则格式化的事件将分别设置为Clob或NClob(类似于传统的ColumnConfig插件)。如果给出了一个文字属性,那么它的值将按照INSERT查询中的原样使用,而不进行任何转义。否则,指定的布局或模式将被转换为已配置的类型并存储在该列中。如果给出了一个文字属性,那么它的值将按照INSERT查询中的原样使用,而不进行任何转义。否则,指定的布局或模式将被转换为已配置的类型并存储在该列中。如果给出了一个文字属性,那么它的值将按照INSERT查询中的原样使用,而不进行任何转义。否则,指定的布局或模式将被转换为已配置的类型并存储在该列中。 |
Parameter Name | Type | Description |
jndiName | String | ```javax.sql.DataSource```绑定的完整的前缀JNDI名称,例如```java:/comp/env/jdbc/LoggingDatabase```。该数据源必须由连接池进行备份; 否则,记录将非常慢。Required |
Parameter Name | Type | Description |
class | Class | 包含用于获取JDBC连接的静态工厂方法的类的完全限定名称。Required |
method | Method | 用于获取JDBC连接的静态工厂方法的名称。此方法必须没有参数,其返回类型必须是java.sql.Connection或 DataSource。如果方法返回Connection s,它必须从连接池获取它们(当Log4j完成它们时,它们将返回到池中); 否则,记录将非常慢。如果该方法返回一个DataSource,DataSource将仅被检索一次,并且由于相同的原因它必须由连接池支持。 |
Parameter Name | Type | Description |
name | String | 数据库列的名称。Required |
pattern | String | 使用此属性可使用PatternLayout模式从该列中的日志事件插入值或值 。只需在此属性中指定任何合法模式。必须指定此属性,literal或isEventTimestamp =“true”,但不能超过其中之一。 |
literal | Type | 使用此属性在此列中插入文字值。该值将直接包含在插入SQL中,而不会引用任何引号,这对于不支持标识列的数据库特别有用。例如,如果使用Oracle,您可以指定literal =“NAME_OF_YOUR_SEQUENCE.NEXTVAL”,以在ID列中插入唯一的ID。必须指定此属性,pattern或isEventTimestamp =“true” |
isEventTimestamp | boolean | 使用此属性可以在该列中插入事件时间戳,该列应为SQL datetime。该值将作为java.sql.Types.TIMESTAMP插入。此属性(等于 true),pattern, 或 isEventTimestamp="true"必须指定 |
isUnicode | boolean | 除非指定了pattern,否则忽略此属性。如果为true或省略(默认),该值将作为unicode(setNString或setNClob)插入。否则,该值将被插入为非unicode(setString或setClob)。 |
isClob | boolean | 除非指定了pattern,否则忽略此属性。使用此属性指示列存储字符大对象(CLOB)。如果为true,则该值将作为CLOB(setClob或setNClob)插入。如果为false或省略(默认),则该值将作为VARCHAR或NVARCHAR(setString或setNString)插入。 |