log4j - Đăng nhập Tệp

Để ghi thông tin đăng nhập của bạn vào một tệp, bạn sẽ phải sử dụng org.apache.log4j.FileAppender.

Cấu hình FileAppender

FileAppender có các tham số có thể định cấu hình sau:

Bất động sản Sự miêu tả
ngay lập tức Cờ này theo mặc định được đặt thành true, có nghĩa là luồng đầu ra tới tệp được xóa với mỗi thao tác nối thêm.
mã hóa Có thể sử dụng bất kỳ mã hóa ký tự nào. Theo mặc định, nó là lược đồ mã hóa dành riêng cho nền tảng.
ngưỡng cửa Mức ngưỡng cho người tìm kiếm này.
Tên tệp Tên của tệp nhật ký.
fileAppend Điều này theo mặc định được đặt thành true, có nghĩa là thông tin ghi nhật ký được nối vào cuối cùng một tệp.
đệmIO Cờ này cho biết liệu chúng ta có cần bật tính năng ghi trong bộ đệm hay không. Theo mặc định, nó được đặt thành false.
bufferSize Nếu I / O có bộ đệm được bật, nó cho biết kích thước bộ đệm. Theo mặc định, nó được đặt thành 8kb.

Sau đây là tệp cấu hình mẫu log4j.properties cho FileAppender -

# 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

Nếu bạn muốn có tệp cấu hình XML tương đương với tệp trên log4j.properties thì đây là nội dung:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>

<appender name="FILE" class="org.apache.log4j.FileAppender">

   <param name="file" value="${log}/log.out"/>
   <param name="immediateFlush" value="true"/>
   <param name="threshold" value="debug"/>
   <param name="append" value="false"/>
   
   <layout class="org.apache.log4j.PatternLayout">
      <param name="conversionPattern" value="%m%n"/>
   </layout>
</appender>

<logger name="log4j.rootLogger" additivity="false">
   <level value="DEBUG"/>
   <appender-ref ref="FILE"/>
</logger>

</log4j:configuration>

Bạn có thể thử log4j - Chương trình mẫu với cấu hình trên.

Đăng nhập nhiều tệp

Bạn có thể muốn viết thông báo nhật ký của mình thành nhiều tệp vì những lý do nhất định, chẳng hạn như nếu kích thước tệp đạt đến một ngưỡng nhất định.

Để ghi thông tin đăng nhập của bạn vào nhiều tệp, bạn sẽ phải sử dụng org.apache.log4j.RollingFileAppender lớp mở rộng FileAppender và kế thừa tất cả các thuộc tính của nó.

Chúng tôi có các tham số có thể định cấu hình sau đây ngoài các tham số được đề cập ở trên cho FileAppender -

Bất động sản Sự miêu tả
Kích thước tệp tối đa Đây là kích thước quan trọng của tệp mà trên đó tệp sẽ được cuộn. Giá trị mặc định là 10 MB.
maxBackupIndex Thuộc tính này biểu thị số lượng tệp sao lưu sẽ được tạo. Giá trị mặc định là 1.

Sau đây là tệp cấu hình mẫu log4j.properties cho RollingFileAppender.

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

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

# 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, should not overwrite
log4j.appender.FILE.Append=true

# Set the maximum file size before rollover
log4j.appender.FILE.MaxFileSize=5MB

# Set the the backup index
log4j.appender.FILE.MaxBackupIndex=2

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

Nếu bạn muốn có tệp cấu hình XML, bạn có thể tạo tệp giống như đã đề cập trong phần ban đầu và chỉ thêm các tham số bổ sung liên quan đến RollingFileAppender.

Cấu hình ví dụ này chứng minh rằng kích thước tối đa cho phép của mỗi tệp nhật ký là 5 MB. Khi vượt quá kích thước tối đa, một tệp nhật ký mới sẽ được tạo. TừmaxBackupIndex được định nghĩa là 2, khi tệp nhật ký thứ hai đạt đến kích thước tối đa, tệp nhật ký đầu tiên sẽ bị xóa và sau đó, tất cả thông tin nhật ký sẽ được quay trở lại tệp nhật ký đầu tiên.

Bạn có thể thử log4j - Chương trình mẫu với cấu hình trên.

Tạo tệp nhật ký hàng ngày

Có thể có yêu cầu tạo tệp nhật ký của bạn hàng ngày để giữ một bản ghi rõ ràng về thông tin ghi nhật ký của bạn.

Để ghi thông tin đăng nhập của bạn vào các tệp hàng ngày, bạn sẽ phải sử dụng org.apache.log4j.DailyRollingFileAppender lớp mở rộng FileAppender và kế thừa tất cả các thuộc tính của nó.

Chỉ có một tham số quan trọng có thể định cấu hình ngoài những tham số được đề cập ở trên cho FileAppender:

Bất động sản Sự miêu tả
DatePattern Điều này cho biết thời điểm cuộn qua tệp và quy ước đặt tên sẽ được tuân theo. Theo mặc định, cuộn qua được thực hiện vào lúc nửa đêm mỗi ngày.

DatePattern kiểm soát lịch trình cuộn qua bằng một trong các mẫu sau:

DatePattern Sự miêu tả
'.' yyyy-MM Lăn qua vào cuối mỗi tháng và vào đầu tháng tiếp theo.
'.' yyyy-MM-dd Lăn qua nửa đêm mỗi ngày. Đây là giá trị mặc định.
'.' yyyy-MM-dd-a Lăn qua vào giữa trưa và nửa đêm mỗi ngày.
'.' yyyy-MM-dd-HH Lăn qua đầu mỗi giờ.
'.' yyyy-MM-dd-HH-mm Lăn qua mỗi phút.
'.' yyyy-ww Lăn qua vào ngày đầu tiên của mỗi tuần tùy thuộc vào ngôn ngữ.

Sau đây là tệp cấu hình mẫu log4j.properties để tạo các tệp nhật ký di chuyển vào giữa trưa và nửa đêm mỗi ngày.

# 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 to 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

Nếu bạn muốn có tệp cấu hình XML, bạn có thể tạo tệp giống như đã đề cập trong phần ban đầu và chỉ thêm các tham số bổ sung liên quan đến DailyRollingFileAppender.

Bạn có thể thử log4j - Chương trình mẫu với cấu hình trên.