📜  Log4j登录文件

📅  最后修改于: 2021-01-06 09:11:48             🧑  作者: Mango

Log4J-登录文件

Log4j提供org.apache.log4j.FileAppender类,以将您的日志记录信息写入文件。

FileAppender参数

FileAppender具有以下可配置参数:

Parameter Description
immediateFlush The default value of this flag is true, which means the output stream to the file being flushed with each append operation.
encoding We can use any character – encoding. By default, encoding is the platform-specific encoding scheme.
threshold The level of the threshold for this appender.
Filename Log file’s name.
fileAppend The default value is true, which means the logging information is appended to the end of the same file.
bufferedIO This flag defines whether we need buffered writing enabled. The default value is false.
bufferSize If buffered I/O is enabled or true, it indicates the buffer size. By default, it is set to 8kb.

让我们看一个FileAppender的例子:

Log4j.properties

# Define the root logger with appender file
log = /usr/home/log4j

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite
log4j.appender.FILE.Append=false

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

范例.java

import org.apache.log4j.Logger;

import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class HtmlLayoutEx{

   static Logger log = Logger.getLogger(HtmlLayoutEx.class.getName());
   
   public static void main(String[] args)throws IOException, SQLException{
      log.debug("Hello this is a debug message");
      log.info("Hello this is an info message");
   }
}

输出:

Hello this is a debug message
Hello this is an info message

如果您希望具有一个与上述log4j.properties文件等效的XML配置文件,则其内容如下:







   
   
   
   
   
   
      
   



   
   



登录多个文件

我们还可以出于某些原因将多个消息写入多个文件,例如,如果文件大小达到某个阈值。

要编写有关登录多个文件的信息,必须使用org.apache.log4j.RollingFileAppender类,该类扩展了FileAppender类并继承了其所有属性。

除了上面提到的FileAppender之外,只有一个重要的参数:

DatePattern:这指示何时滚动文件以及要遵循的命名约定。默认情况下,过渡在每天的午夜执行。

DatePattern用于通过以下模式之一控制过渡计划:

DatePattern Description
‘.’ yyyy-MM Rollover at the end of per month and the beginning of the next month.
‘.’ yyyy-MM-dd Rollover at midnight per day. It is the default value.
‘.’ yyyy-MM-dd-a Rollover is performed at mid day and midnight of each day.
‘.’ yyyy-MM-dd-HH Rollover at the top of every hour.
‘.’ yyyy-MM-dd-HH-mm Rollover every minute.
‘.’ yyyy-ww Rollover is performed on the first day of each week depending upon the locale.

让我们看一个示例配置文件log4j.properties,以生成在每天中午和午夜滚动的日志文件:

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append-false, should not overwrite
log4j.appender.FILE.Append=true

# Set the DatePattern
log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n