1. 머리말
log4j는 Java로 작성된 안정적이고 빠르며 유연한 로깅 프레임워크(API)로 Apache 소프트웨어 라이센스에 따라 출시됩니다. Log4j는 C, C++, C#, Perl, Python 및 Ruby와 같은 언어로 이식되었습니다.
Log4j는 구성 가능성이 높으며 런타임 시 외부 파일을 통해 구성할 수 있습니다. 이는 로깅의 우선순위를 지정하고 로깅 정보를 데이터베이스, 파일, 콘솔, UNIX 시스템 로그 등과 같은 여러 대상으로 전달하는 메커니즘을 제공합니다.
Log4j에는 세 가지 주요 구성 요소가 있습니다.
로거: 로깅 정보 캡처를 담당합니다.
어펜더: 다양한 기본 대상에 로그 정보를 게시하는 역할을 담당합니다.
레이아웃: 로그 정보의 형식을 다양한 스타일로 지정합니다.
참고: 이 기사는 log4j 2.X 이상을 기반으로 합니다.
2. 설치
log4j-core-xx.jar
log4j-api-xx.jar
log4j-web -xx.jar(웹 프로젝트에 필요한 참조)
3. 구성
일부 로그 클래스를 준비하고 다음 참조를 추가합니다.
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;
static Logger logger = LogManager.getLogger(Test.class.getName());
구성 파일 위치는 다음과 같습니다. src 루트 디렉터리에 구성 파일이 없어도 오류가 보고되지 않으며 기본적으로 콘솔 형식으로 출력됩니다.
log4j2 구성 파일은 log4(버전 1.)와 매우 다릅니다:
<?xml version="1.0" encoding="UTF-8"?> <configuration status="error"> <!--先定义所有的appender--> <appenders> <!--这个输出控制台的配置--> <Console name="Console" target="SYSTEM_OUT"> <!--这个是输出日志的格式--> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </Console> <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用--> <File name="Error" fileName="${web:rootDir}/logs/error.log" append="false"> <!--文件只记录level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout charset="UTF-8" pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </File> <!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--> <RollingFile name="RollingFile" fileName="${web:rootDir}/logs/history.log" filePattern="log/$${date:yyyy-MM}/history-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout charset="UTF-8" pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> <SizeBasedTriggeringPolicy size="50MB"/> </RollingFile> </appenders> <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效--> <loggers> <!--建立一个默认的root的logger--> <root level="trace"> <appender-ref ref="Error"/> <appender-ref ref="RollingFile"/> <appender-ref ref="Console"/> </root> </loggers> </configuration>
4. 일반 프로젝트와 웹 프로젝트
일반 프로젝트의 경우 정상적으로 사용할 수 있습니다. 위 구성이 완료되면 웹 프로젝트의 경우 로그 파일이 생성되지 않습니다. web의
log4j를 사용하여 Java에서 로그를 기록하는 방법에 대한 자세한 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!