简体   繁体   English

log4j2使用属性文件配置jdbc apender

[英]log4j2 configure jdbc apender using properties file

Im new to log4j2 and trying to convert following log4j2.xml configuration into akey value pairs in log4j2.properties for couple of days now 我是log4j2的新手,现在尝试将以下log4j2.xml配置转换为log4j2.properties中的akey值对

   <Jdbc name="databaseAppender" tableName="APPLOGS">
        <DataSource jndiName="com.a.b.c"/>
        <Column name="ENTRY_DATE" isEventTimestamp="true" />
        <Column name="LOGLEVEL" pattern="%level" />
        <Column name="LOGGER" pattern="%logger" />
        <Column name="MESSAGE" pattern="%message" />
        <Column name="EXCEPTION" pattern="%throwable " />
    </Jdbc>

Im using spring-boot-starter-log4j2 as my log4j2 and spring-boot-starter-parent version is 2.0.0.RELEASE .also note that I tried the this question's answer already and getting following exception 我使用spring-boot-starter-log4j2作为我的log4j2,并且spring-boot-starter-parent版本是2.0.0.RELEASE还请注意,我已经尝试了这个问题的答案并得到以下异常

Caused by: org.apache.logging.log4j.core.config.ConfigurationException: No name attribute provided for Appender dbAppender

highly appreciate if anyone can give a solution on this matter.Thanks in advance 非常感谢您能就此问题提供解决方案。谢谢

Here is an example (log4j2.properties): 这是一个示例(log4j2.properties):

name=PropertiesConfig
status = error
dest = out

appender.db.type = JDBC
appender.db.name = DB
appender.db.connectionSource.type= DriverManager
appender.db.connectionSource.connectionString = <jdbc_db_url>
appender.db.connectionSource.username = <user>
appender.db.connectionSource.password = <password>
appender.db.connectionSource.driverClassName = org.postgresql.Driver
appender.db.tableName = logs

appender.db.columnConfigs[0].type = Column
appender.db.columnConfigs[0].name = userid
appender.db.columnConfigs[0].pattern =%X{username}
appender.db.columnConfigs[0].isUnicode =false

appender.db.columnConfigs[1].type = Column
appender.db.columnConfigs[1].name = message
appender.db.columnConfigs[1].pattern =%msg
appender.db.columnConfigs[1].isUnicode =false

rootLogger.level = debug
rootLogger.appenderRefs = database
rootLogger.appenderRef.database.ref = DB

application.properties: application.properties:

# LOGGING
logging.level.org.springframework.web=${LOG_LEVEL_SPRING:info}
logging.level.org.hibernate=${LOG_LEVEL_SPRING:info}
logging.level.web=${LOG_LEVEL_SPRING:info}
logging.config=classpath:log4j2.properties

See more options here: https://logging.apache.org/log4j/2.0/manual/appenders.html#JDBCAppender 在此处查看更多选项: https : //logging.apache.org/log4j/2.0/manual/appenders.html#JDBCAppender

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM