标签:files 自己 方便 循环 writer method 控制 就会 内容
| ALL | 打开所有日志 |
| DEBUG | 细粒度信息事件,对调试应用程序是非常有帮助的 |
| INFO | 粗粒度信息事件,突出强调应用程序的运行过程 |
| WARN | 可能出现潜在错误的情形 |
| ERROR | 虽然发生错误事件,但仍然不影响系统的继续运行 |
| FATAL | 指出每个严重的错误事件将会导致应用程序的退出 |
| OFF | 关闭所有日志 |
static Logger logger = Logger.getLogger(test.class);
logger.setLevel((Level)Level.WARN);
| ConsoleAppender | 使用用户指定的布局(layout)输出日志事件到System.out或者 System.err。默认的目标是System.out |
| FileAppender | 把日志事件写入一个文件 |
| DailyRollingFileAppender | 扩展FileAppender,因此多个日志文件可以以一个用户选定的频率进行循环日志记录 |
| RollingFileAppender | 扩展FileAppender,备份容量达到一定大小的日志文件 |
| WriterAppender | 根据用户的选择把日志事件写入到Writer或者OutputStream |
| SMTPAppender | 当特定的日志事件发生时,一般是指发生错误或者重大错误时,发送一封邮件 |
| SocketAppender | 给远程日志服务器(通常是网络套接字节点)发送日志事件(LoggingEvent)对象 |
| SocketHubAppender | 给远程日志服务器群组(通常是网络套接字节点)发送日志事件(LoggingEvent)对象 |
| SyslogAppender | 给远程异步日志记录的后台精灵程序(daemon)发送消息 |
| TelnetAppender | 一个专用于向只读网络套接字发送消息的log4j appender |
| HTMLLayout | 格式化日志输出为HTML表格 |
| PatternLayout | 根据指定的转换模式格式化日志输出,或者如果没有指定任何转换模式,就使用默认的转换模式 |
| SimpleLayout | 以一种非常简单的方式格式化日志输出,它打印级别 Level,然后跟着一个破折号“-“ ,最后才是日志消息 |
log4j.rootLogger = [ level ] , appenderName, appenderName, ...
log4j.logger.xxx.xxx.xxx=level
log4j.rootLogger=WARN,Alog4j.logger.com.opensymphony.xwork2.interceptor.TimerInterceptor=DEBUGlog4j.appender.A=org.apache.log4j.ConsoleAppenderlog4j.appender.A.layout=org.apache.log4j.PatternLayoutlog4j.appender.A.layout.ConversionPattern==%-d{yyyy-MM-dd HH:mm:ss} [%p]-[%c] %m%n
log.info("微信accessToken刷新 " + WechatAPI.getAccessToken());
log4j.rootLogger=WARN,Alog4j.logger.indiv.dulk=DEBUGlog4j.logger.com.opensymphony.xwork2.interceptor.TimerInterceptor=DEBUGlog4j.appender.A=org.apache.log4j.ConsoleAppenderlog4j.appender.A.layout=org.apache.log4j.PatternLayoutlog4j.appender.A.layout.ConversionPattern==%-d{yyyy-MM-dd HH:mm:ss} [%p]-[%c] %m%n
log4j.rootLogger=WARN,Alog4j.logger.indiv.dulk.wechat=DEBUG,wechatlog4j.appender.A=org.apache.log4j.ConsoleAppenderlog4j.appender.A.layout=org.apache.log4j.PatternLayoutlog4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p]-[%c] %m%nlog4j.appender.wechat=org.apache.log4j.ConsoleAppenderlog4j.appender.wechat.layout=org.apache.log4j.PatternLayoutlog4j.appender.wechat.layout.ConversionPattern=[%p]-[%c] %m%n

log4j.rootLogger=WARN,Alog4j.logger.indiv.dulk.wechat=DEBUG,wechat#不受全局管理log4j.additivity.indiv.dulk.wechat=falselog4j.appender.A=org.apache.log4j.ConsoleAppenderlog4j.appender.A.layout=org.apache.log4j.PatternLayoutlog4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p]-[%c] %m%nlog4j.appender.wechat=org.apache.log4j.ConsoleAppenderlog4j.appender.wechat.layout=org.apache.log4j.PatternLayoutlog4j.appender.wechat.layout.ConversionPattern=[%p]-[%c] %m%n

log4j.appender.appenderName = fully.qualified.name.of.appender.class (有资格的appender类的全名)log4j.appender.appenderName.option1 = value1log4j.appender.appenderName.option = valueN
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.classlog4j.appender.appenderName.layout.option1 = value1log4j.appender.appenderName.layout.option = valueN
log4j.appender.log.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t ] %m%n
### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制台 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n### 输出DEBUG 级别以上的日志到=E://logs/error.log ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = E://logs/log.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUGlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 输出ERROR 级别以上的日志到=E://logs/error.log ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File =E://logs/error.loglog4j.appender.E.Append = truelog4j.appender.E.Threshold = ERRORlog4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#指定目录下包下的日志信息都存放到数据库log4j.logger.database=DEBUG,oracledblog4j.appender.oracledb=org.apache.log4j.jdbc.JDBCAppenderlog4j.appender.oracledb.Driver=oracle.jdbc.driver.OracleDriverlog4j.appender.oracledb.URL=jdbc:oracle:thin:@192.168.20.92:1521:chshsid(切忌此处为sid而不是数据库名)log4j.appender.oracledb.user=scottlog4j.appender.oracledb.password=tiger#log4j.appender.encoding=utf-8log4j.appender.oracledb.sql=INSERT INTO enter_ora_log4j VALUES (‘%d{yyyy-MM-dd HH:mm:ss}‘, ‘%t‘, ‘%p‘, ‘%l‘, ‘%m‘)log4j.appender.oracledb.layout=org.apache.log4j.PatternLayout
#指定目录下的java类的日志信息都存放到该目录下log4j.logger.com.cuigq.TestError=DEBUG,R2log4j.appender.R2=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R2.File=d:/loginfo/html.html#log4j.appender.R2.MaxFileSize=500KB#log4j.appender.R2.MaxBackupIndex=1log4j.appender.R2.layout=org.apache.log4j.HTMLLayout#log4j.appender.R2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
#指定目录下包下的日志信息都存放到该目录下log4j.logger.cn.com.cuigq.Theard=DEBUG,R1log4j.appender.R1=org.apache.log4j.RollingFileAppenderlog4j.appender.R1.File=d:/loginfo/iamSystem1.loglog4j.appender.R1.MaxFileSize=500KBlog4j.appender.R1.MaxBackupIndex=1log4j.appender.R1.layout=org.apache.log4j.PatternLayoutlog4j.appender.R1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
public static Logger getLogger( String name)
static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName ())
BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境PropertyConfigurator.configure(StringconfigFilename):读取使用Java的特性文件编写的配置文件DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件
Logger.debug ( Object message ) ;Logger.info ( Object message ) ;Logger.warn ( Object message ) ;Logger.error ( Object message ) ;
<servlet><servlet-name>InitLog4jServlet</servlet-name><servlet-class>indiv.dulk.wechat.init.InitLog4jServlet</servlet-class><init-param><param-name>propertiesLocation</param-name><param-value>classpath:log4j.properties</param-value></init-param><load-on-startup>0</load-on-startup></servlet>
public class InitLog4jServlet extends HttpServlet{/*** Servlet初始化的执行方法,用以加载log4j配置文件** @throws ServletException*/@Overridepublic void init() throws ServletException {System.out.println("*** Log4jInitServlet正在初始化log4j日志设置信息 ***");String log4jLocation = getInitParameter("propertiesLocation");if (log4jLocation == null) {System.err.println("*** 没有找到log4j的properties配置文件,使用缺省log4j环境初始化 ***");BasicConfigurator.configure();} else {String webAppPath = getServletContext().getRealPath("/");String log4jRealLocation = webAppPath + log4jLocation;File log4jFile = new File(log4jRealLocation);if (log4jFile.exists()) {System.out.println("*** 使用" + log4jRealLocation + "进行log4j环境初始化 ***");PropertyConfigurator.configure(log4jRealLocation);} else {System.err.println("*** " + log4jRealLocation + "文件未找到,使用缺省log4j环境初始化 ***");BasicConfigurator.configure();}}}}
public class InitWechatServlet extends HttpServlet{private static Logger log = Logger.getLogger(InitWechatServlet.class);/*** 刷新的间隔时间(单位:毫秒),默认为1h,可以在web.xml自定义配置*/private long period = 3600000;/*** 时间间隔时需要执行的任务内容*/private TimerTask timerTask = new TimerTask() {@Overridepublic void run() {//获取最新的access_token并设定到WeChatAPI类中的静态属性中去WechatAPI.setAccessToken(WechatUtil.getNewAccessToken());log.info("微信accessToken刷新 " + WechatAPI.getAccessToken());}};}
标签:files 自己 方便 循环 writer method 控制 就会 内容
原文地址:http://www.cnblogs.com/deng-cc/p/6739419.html