`

log4j指定输出源append、存入数据库并自定义参数

 
阅读更多

在log4j中可以指定特定的输出源append。在数据库记录日志时,可以将日志文件记录到多个数据库表中。

Java代码 复制代码 
  1. # This is the configuring for logging displayed in the Application Server   
  2. log4j.rootCategory=DEBUG,logfile,stdout   
  3.   
  4. log4j.logger.SYSTEM = INFO,JDBC   
  5. log4j.logger.OPERATION = INFO,JDBC2   
  6.   
  7. #stdout configure   
  8. log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
  9. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   
  10. log4j.appender.stdout.layout.ConversionPattern= %d %p [%c] - <%m>%n   
  11.   
  12. #logfile configure   
  13. log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender   
  14. log4j.appender.logfile.File=../logs/moca_stm_stm.log   
  15. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout   
  16. log4j.appender.logfile.layout.ConversionPattern= %d{yyyy MM dd HH:mm:ss} %p [%c] - <%m>%n   
  17.   
  18. #JDBC configure   
  19. log4j.appender.JDBC.Threshold=INFO   
  20. log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender    
  21. log4j.appender.JDBC.driver=oracle.jdbc.driver.OracleDriver   
  22. log4j.appender.JDBC.URL=jdbc:oracle:thin:@192.168.140.13:1521:DMPT   
  23. log4j.appender.JDBC.user=moca_stm   
  24. log4j.appender.JDBC.password=moca_stm   
  25. log4j.appender.JDBC.layout=org.apache.log4j.PatternLayout   
  26. log4j.appender.JDBC.sql=INSERT INTO XK_SYS_LOG(USERID,LOGTIME,LOGLEVEL,LOCATION,MESSAGE)VALUES('%X{userId}','%d{yyyy-MM-dd HH:mm:ss}','%p','%l','%m')   
  27.   
  28.   
  29. log4j.appender.JDBC2.Threshold=INFO   
  30. log4j.appender.JDBC2=org.apache.log4j.jdbc.JDBCAppender    
  31. log4j.appender.JDBC2.driver=oracle.jdbc.driver.OracleDriver   
  32. log4j.appender.JDBC2.URL=jdbc:oracle:thin:@192.168.140.13:1521:DMPT   
  33. log4j.appender.JDBC2.user=moca_stm   
  34. log4j.appender.JDBC2.password=moca_stm   
  35. log4j.appender.JDBC2.layout=org.apache.log4j.PatternLayout   
  36. log4j.appender.JDBC2.sql=INSERT INTO XK_SYS_LOG_2(USERID,LOGTIME,LOGLEVEL,LOCATION,MESSAGE)VALUES('%X{userId}','%d{yyyy-MM-dd HH:mm:ss}','%p','%l','%m')  
# This is the configuring for logging displayed in the Application Server
log4j.rootCategory=DEBUG,logfile,stdout

log4j.logger.SYSTEM = INFO,JDBC
log4j.logger.OPERATION = INFO,JDBC2

#stdout configure
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d %p [%c] - <%m>%n

#logfile configure
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=../logs/moca_stm_stm.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern= %d{yyyy MM dd HH:mm:ss} %p [%c] - <%m>%n

#JDBC configure
log4j.appender.JDBC.Threshold=INFO
log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.JDBC.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.JDBC.URL=jdbc:oracle:thin:@192.168.140.13:1521:DMPT
log4j.appender.JDBC.user=moca_stm
log4j.appender.JDBC.password=moca_stm
log4j.appender.JDBC.layout=org.apache.log4j.PatternLayout
log4j.appender.JDBC.sql=INSERT INTO XK_SYS_LOG(USERID,LOGTIME,LOGLEVEL,LOCATION,MESSAGE)VALUES('%X{userId}','%d{yyyy-MM-dd HH:mm:ss}','%p','%l','%m')


log4j.appender.JDBC2.Threshold=INFO
log4j.appender.JDBC2=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.JDBC2.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.JDBC2.URL=jdbc:oracle:thin:@192.168.140.13:1521:DMPT
log4j.appender.JDBC2.user=moca_stm
log4j.appender.JDBC2.password=moca_stm
log4j.appender.JDBC2.layout=org.apache.log4j.PatternLayout
log4j.appender.JDBC2.sql=INSERT INTO XK_SYS_LOG_2(USERID,LOGTIME,LOGLEVEL,LOCATION,MESSAGE)VALUES('%X{userId}','%d{yyyy-MM-dd HH:mm:ss}','%p','%l','%m')



测试类

Java代码 复制代码
  1. package test;   
  2.   
  3. import org.apache.log4j.Logger;   
  4. import org.apache.log4j.MDC;   
  5.   
  6. public class LogTest {   
  7.     private static Logger logger = Logger.getLogger("OPERATION");   
  8.     //private static Logger logger = Logger.getLogger("SYSTEM");   
  9.     //private static Logger logger = Logger.getLogger(LogTest.class);   
  10.     public static void main(String[] args) {   
  11.         MDC.put("userId""用户ID");   
  12.         logger.error("testError");      
  13.     }   
  14. }  

http://hunray.iteye.com/blog/738173

分享到:
评论

相关推荐

    log4j自定义日志文件名及日志输出格式

    Log4j的输出格式主要通过`Layout`组件来控制,最常见的`PatternLayout`允许我们使用占位符来指定输出格式。例如,`%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n`会输出时间戳、日志级别、logger名称、行号和日志...

    log4j配置 输出日志 案例

    `log4j配置输出日志案例.doc`文档中应该包含了更详细的配置和实际运行案例,包括如何调整日志级别、设置过滤器、自定义日志格式等。这些案例可以帮助读者更好地理解和应用log4j,解决实际开发中的日志管理问题。 ##...

    log4j的eclipse工程,输出到文件的方式配置log4j

    Log4j是Apache的一个开源项目,它提供了一个灵活的日志系统,允许开发者在运行时控制日志信息的级别、格式以及输出位置,包括文件、控制台、数据库等。 描述"一直在使用log4j。输出到文件的方式配置log4j。这是一个...

    SpringBoot框架配置log4j和log4j2的配置代码

    log4j.appender.file.Append=true log4j.appender.file.Threshold=DEBUG log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p ...

    log4j(二):动态配置日志输出路径

    这个文件定义了Log4j的行为,包括设置日志级别(如DEBUG, INFO, WARN, ERROR, FATAL),定义Appender,以及指定Appender的输出目标。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, FILE ...

    Log4J_全能配置文件.pdf

    - `log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender`:指定了名为`CONSOLE`的appender是控制台输出。 - `log4j.appender.CONSOLE.Target=System.out`:日志输出到标准输出流(System.out)。 - `log4j....

    日志配置到文件,数据库

    - `log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender`:指定了数据库输出的Appender类型为`JDBCAppender`。 - `log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/log4j`:连接数据库的URL。 ...

    log4j jarjar包

    1. **Logger**:日志器是Log4j的基本组件,负责接收日志事件并将其传递给适当的输出。开发者可以根据需要创建多个日志器,每个日志器可以有不同的输出配置。 2. **Appender**:Appender负责将日志信息输出到指定的...

    tomcat下用Log4j 按文件大小,生成catalina.out日志文件

    在这个配置中,`MaxFileSize`参数指定了单个日志文件的最大大小(5MB),一旦达到这个大小,Log4j会滚动日志并创建新的文件。`MaxBackupIndex`参数指定了最多保留的旧日志文件数量,这里设置为10,意味着系统会保留...

    log4j日志输出格式化和日志文件名格式化

    Log4j的核心在于其灵活性,可以通过自定义布局模板来控制日志输出的格式。最常用的布局模板类是PatternLayout,它允许用户通过特定的模式字符串定义输出格式。例如,一个常见的模式是`%d{yyyy-MM-dd HH:mm:ss} %-5p ...

    Log4J完整说明和配置

    以上配置覆盖了Log4J常用的几种Appender类型及其配置参数,能够满足大多数应用场景的需求。开发者可以根据实际需求调整各个Appender的配置,以实现更加精细化的日志管理。此外,Log4J还提供了丰富的扩展机制,如MDC...

    slf4j与log4j整合包

    Log4j提供了灵活的日志配置,可以通过XML、properties文件或者代码动态改变日志级别,控制输出格式,以及指定日志输出的目的地(控制台、文件、数据库等)。此外,Log4j还支持自定义日志布局模式,可以方便地定制...

    Log4j2学习log4j2.xml配置模板

    --Configuration 后面的 status,这个用于设置 log4j2 自身内部的信息输出,可以不设置,当设置成 trace 时,你会看到 log4j2 内部各种详细输出--&gt; &lt;!--monitorInterval:Log4j 能够自动检测修改配置 文件和重新配置...

    log4j_jar包跟教程说明

    - Log4j允许开发者创建自定义的Appender和Layout来满足特定需求,如发送邮件、写入数据库等。 - Appender决定了日志信息的输出位置,而Layout则决定日志的显示格式。 6. **Log4j的最新版本:Log4j 2** - 随着...

    Log4j2实现不同线程不同级别日志输出到不同的文件中

    - 要实现不同线程的日志分别输出,我们需要创建一个自定义的Log4j2配置文件(通常为`.xml`或`.json`格式)。配置文件中,我们可以定义多个Appenders(输出目的地),每个Appender可以关联不同的日志级别和线程上...

    log4j日志驱动包

    Log4j比较全面的配置 log4j.rootLogger=DEBUG,CONSOLE,A1,im log4j.addivity.org.apache=true # 应用于控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.Threshold=DEBUG log4j....

    log4j使用教程(详解)

    log4j.appender.FILE.Append=true log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ``` 这段配置将日志级别设为...

    log4j-1.2.17.jar及配置文件

    《log4j-1.2.17.jar及其...理解并熟练掌握Log4j的使用,不仅可以提升开发效率,也有助于优化系统的监控和维护。通过合理配置,Log4j可以适应各种复杂的应用场景,满足不同层次的需求,从而成为Java开发者的得力助手。

    log4j学习

    4. **Web应用配置**:在Web应用中,确保`commons-logging.properties`位于`WEB-INF/classes/`目录下,`log4j.properties`则可以放在`WEB-INF/`目录下,并在`web.xml`中配置Log4j初始化参数,以便Tomcat能找到并加载...

    log4j-1.2.16.jar与slf4j-api-1.6.1.jar加个转换包和log4j.properties示例

    它允许程序员在运行时配置日志级别,选择不同的输出目的地(如控制台、文件、数据库等),并支持自定义日志格式。Log4j 1.2.16是该库的一个较旧版本,但仍然广泛使用。 **SLF4J(Simple Logging Facade for Java)*...

Global site tag (gtag.js) - Google Analytics