log4cxx
2020-09-23 09:56:23 0 举报
AI智能生成
登录查看完整内容
log4cxx 使用教程
作者其他创作
大纲/内容
log4cxx
编译安装
1. 编译安装 apr-1.7.0
tar zxvf apr-1.7.0.tar.gzcd apr-1.7.0./configure && make && make install
2. 编译安装apr-util-1.6.1
tar zxvf apr-util-1.6.1.tar.gzcd apr-util-1.6.1./configure --with-apr=/usr/local/apr && make && make install
3. 编译安装 log4cxx
unzip logging-log4cxx-master.zipcd logging-log4cxx-master./autogen.sh && ./configure && make && make install
组件介绍
记录器:Loggers
特点
Logger是有一个String类的名字识别的,且大小写敏感
root logger是所有logger的祖先,是一直存在的, 通过Logger.getRootLogger()获得,并且不能通过名字获得
public static Logger Logger.getLogger(String name) 获得或者创建一个Logger
日志级别
未被分配level的logger可以继承它最近的父logger的level。 若父logger也没有设置level,则将继承root logger的level
每条输出到logger的日志请求(logging request)也都有一个level,如LOG4CXX_DEBUG
所有的logger level及大小关系: Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR < Level.FATAL < Level.OFF
输出源:Appenders
把日志输出到不同地方,如控制台、文件等,根据天数或文件大小产生新的文件,再或者可以以流的形式发送到其他地方等。
常见类
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender (文件大小达到指定尺寸时产生一个新的文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)
配置模式
log4j.appender.appenderName = classNamelog4j.appender.appenderName.Option1 = value1...log4j.appender.appenderName.optionN = valueN
配置模式实例
appender的option解析
ConsoleAppender
Threshold = WARN : 指定日志信息的最低输出级别,默认为DEBUGImmediateFlush = true : 表示所有消息都被立即输出,设为false则不输出, 默认值为trueTarget = System.err : 默认值是System.out
FileAppender
Threshold = WARD ImmediateFlush = trueAppend = false : true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是trueFile = D:/logs/logging.log4j : 指定消息输出的文件目录名
DailyRollingFileAppender
Threshold = WARD ImmediateFlush = trueAppend = falseFile = D:/logs/logging.log4jDatePattern = '.'yyyy-MM : 每个月生成一个新的日志文件 '.'yyyy-ww : 每周 '.'yyyy-MM-dd:每天 '.'yyyy-MM-dd-a:每天2次 '.'yyyy-MM-dd-HH:每小时 '.'yyyy-MM-dd-HH-mm : 每分钟
RollingFileAppender
布局(输出格式):layout
有时用户希望自定义日志输出格式,log4j.appender.appenderName后附加layouts来完成。
Layouts提供四种日志输出格式:
1. HTML样式 : org.apache.log4j.HTMLLayout
LocaltionInfo = true : 输出java文件名和行号,默认值是falseTitle = My Logging : 默认值是Log4j Log Messages
2. 自由指定样式:org.apache.log4j.PatternLayout
ConversionPattern = %m%n : 设定以怎样的格式显示消息
3. 包含日志级别和信息字符串的样式: org.apache.log4j.SimpleLayout
4. 包含日志产生的时间、线程、类别等信息:org.apache.log4j.TTCCLayout
Layouts使用实例
log4j.appender.appenderName.layout = classNamelog4j.appender.appenderName.layout.Option1 = value1...log4j.appender.appenderName.layout.OptionN = valueN
配置文件详解
1. 配置root logger
提示
2. 使用多个logger,并配置在一个配置文件中
1. log4cxx库对日志流设置,只需要更改配置文件中的appender属性2. log4cxx支持Logger继承机制,但由于要将日志流输出到多个文件,需要在配置文件中,将子Logger的继承属性设置为false
3. 特别的appender应用
应用于socket
log4j.appender.socket=org.apache.log4j.RollingFileAppenderlog4j.appender.socket.RemoteHost=localhostlog4j.appender.socket.Port=5001log4j.appender.socket.LocationInfo=true
发送日志到指定邮件
log4j.appender.mail=org.apache.log4j.net.SMTPAppenderlog4j.appender.mail.Threshold=FATALlog4j.appender.mail.BufferSize=10log4j.appender.mail.From = xxx@mail.comlog4j.appender.mail.SMTPHost=mail.comlog4j.appender.mail.Subject=Log4J Messagelog4j.appender.mail.To= xxx@mail.comlog4j.appender.mail.layout=org.apache.log4j.PatternLayoutlog4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n
应用于数据库
log4j.appender.database=org.apache.log4j.jdbc.JDBCAppenderlog4j.appender.database.URL=jdbc:mysql://localhost:3306/testlog4j.appender.database.driver=com.mysql.jdbc.Driverlog4j.appender.database.user=rootlog4j.appender.database.password=log4j.appender.database.sql=INSERT INTO LOG4J (Message) VALUES('=[%-5p] %d(%r) --> [%t] %l: %m %x %n')log4j.appender.database.layout=org.apache.log4j.PatternLayoutlog4j.appender.database.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n
自定义Appender
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppenderlog4j.appender.im.host = mail.cybercorlin.netlog4j.appender.im.username = usernamelog4j.appender.im.password = passwordlog4j.appender.im.recipient = corlin@cybercorlin.netlog4j.appender.im.layout=org.apache.log4j.PatternLayoutlog4j.appender.im.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n
0 条评论
回复 删除
下一页