如何以属性样式配置log4jcsv布局?

ojsjcaue  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(265)

我当前的配置(这个配置工作正常)

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布局。我添加了依赖公共csv布局
在这里
然后我试着设置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”);

kuuvgm7e

kuuvgm7e1#

我已经在log4j2中成功地使用了它

appender.csvSummary.type = File
appender.csvSummary.name = CSVSUMMARY
appender.csvSummary.append=false
appender.csvSummary.fileName = ${csvPrefix}-${SUM}-${date:yyyy-MM-dd-HH-mm-ss}.csv
appender.csvSummary.layoutString.type = CsvParameterLayout
appender.csvSummary.layoutString.delimiter = ,
appender.csvSummary.layoutString.header = path,test_name,outcome\n
xmd2e60i

xmd2e60i2#

要使用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>

相关问题