본문 바로가기
php

[PHP] log4php 사용하기

by bryan.oh 2022. 4. 28.
반응형

1. Composer 로 설치

composer.json 를 프로젝트 루트에 생성합니다. 이미 있다면, 아래 내용을 추가합니다.

{
    "require": {
        "apache/log4php": "2.3.0"
    }
}

Composer 를 이용해서 설치하면 됩니다.

php composer.phar install

 

2. php 소스 파일로 설치

a. apache log4php 공식 홈의 다운로드 페이지에서 다운로드 합니다.

b. 압축을 풀면 다음과 같은 폴더 구조가 있습니다.

여기에서 php 폴더만 사용합니다. 

php 폴더를 복사해서 현재 프로젝트의 특정 폴더에 붙혀넣기 하겠습니다.

( 저는 php폴더를 log4php로 rename 한 후에  projectRoot/libs/log4php 로 복사했습니다.)

 

기본 사용법

include_once $_SERVER['DOCUMENT_ROOT']."/libs/log4php/Logger.php";
$logger = Logger::getLogger("test_php");
$logger->info("Hello~ Bryan.. this is an infomation log.");
$logger->warn("Please subscribe me.");

이렇게 쓰면, echo(print) 가 됩니다.

test.php의 상단에 위의 코드를 넣어서 실행했더니, print 가 되버립니다.

 

LoggerAppenderDailyFile

날 마다 생성되는 로그가 필요해서 이 logger를 사용합니다.

우선 config.xml 파일을 생성합니다. (libs/log4php/config.xml 경로에 생성했습니다.)

내용은 아래와 같습니다.

<configuration xmlns="http://logging.apache.org/log4php/">

    <appender name="default" class="LoggerAppenderDailyFile">
        <layout class="LoggerLayoutPattern">
            <param name="conversionPattern" value="%date [%logger] %message%newline"/>
        </layout>
        <param name="file" value="logs/logs-%s.log"/>
        <param name="datePattern" value="Y-m-d"/>
    </appender>

    <root>
        <level value="DEBUG"/>
        <appender_ref ref="default"/>
    </root>
</configuration>

기본으로 default 라는 이름의 appender 를 사용할 것이고, log level 은 debug 입니다.

파일은 프로젝트 root 아래 logs 폴더 아래에 logs-{오늘날짜}.log 로 계속해서 생성될겁니다.

이번에는 Logger 에서 configure 를 config.xml 파일로 설정하는 코드를 넣었습니다.

include_once $_SERVER['DOCUMENT_ROOT']."/libs/log4php/Logger.php";
Logger::configure($_SERVER['DOCUMENT_ROOT']."/libs/log4php/config.xml");
$logger = Logger::getLogger("test.php");
$logger->info("Hello~ Bryan.. this is an infomation log.");
$logger->warn("Please subscribe me.");

 

결과

오늘 날짜로 로그 파일이 생성되었습니다.

logs-{오늘날짜}.log 의 파일 내용입니다.

 

 

참고

728x90
반응형

댓글