我当前的配置(这个配置工作正常)
log4j.appender.activity=org.apache.log4j.DailyRollingFileAppender
log4j.appender.activity.file=../logs/activity.log
log4j.appender.activity.append=true
log4j.appender.activity.datePattern='.'yyyy-MM-dd'.log'
log4j.appender.activity.layout=org.apache.log4j.SimpleLayout
log4j.appender.activity.threshold=info
现在我想要设置csv layout.I添加了dependency commons-csv注意到了 here
然后我尝试设置CsvParameterLayout,但它不起作用
log4j.appender.activity.layout=org.apache.log4j.CsvParameterLayout
log4j.appender.activity.layout.delimiter=,
log4j.appender.activity.layout.header=col1,col2,col3,col4
如果我只使用SimpleLayout或PatternLayout并且只写log.info(“string,”+“”string,“+”string“),你怎么看?
要使用CsvParameterLayout,请确保设置了以下依赖项。
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
有时回来我使用这个log4j.xml来记录2列的行。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="csvLog.fileName">csvLog</Property>
<Property name="file-header">column1,column2</Property>
</Properties>
<Appenders>
<RollingFile name="csvFile"
fileName="${csvLog.fileName}.tmp"
filePattern="${csvLog.filename}-%d{MM-dd-yyyy}-%i.csv" >
<CsvParameterLayout delimiter="," header="${file-header}\n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="200" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="debug" additivity="false">
<AppenderRef ref="csvFile" level="debug"/>
</Root>
</Loggers>
</Configuration>