Skip to content

Commit 7fce03c

Browse files
committed
errors 번역
1 parent ebf0d11 commit 7fce03c

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed

errors.md

+101
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# 오류 & 로깅
2+
3+
- [설정](#configuration)
4+
- [오류 처리](#handling-errors)
5+
- [HTTP 예외](#http-exceptions)
6+
- [로깅](#logging)
7+
8+
<a name="configuration"></a>
9+
## 설정
10+
11+
어플리케이션의 로깅 기능은 `Illuminate\Foundation\Bootstrap\ConfigureLogging` 부트스트래퍼 클래스에 설정되어 있습니다. 이 클래스는 여러분의 `config/app.php` 구성 파일의 `log` 구성 옵션을 사용합니다.
12+
13+
기본적으로, 로거는 일별 로그파일을 사용하도록 설정되어 있습니다; 하지만, 이 동작을 필요에 따라 변경 할 수 있습니다. 라라벨은 유명한 [Monolog](https://github.com/Seldaek/monolog) 로깅 라이브러리를 사용하므로, 여러분은 Monolog가 제공하는 다양한 핸들러를 활용 할 수 있습니다.
14+
15+
예를 들어, 일별 로그 파일대신 하나의 로그 파일을 사용하려면, `config/app.php` 설정 파일에서 다음을 변경 할 수 있습니다:
16+
17+
'log' => 'single'
18+
19+
기본적으로, 라라벨은 `single`, `daily`, `syslog` 그리고 `errorlog` 로깅 모드를 제공합니다. 하지만, `ConfigureLogging` 부트스트래퍼 클래스를 재정의하여 로깅을 사용자 정의 할 수 있습니다.
20+
21+
### 오류 정보
22+
23+
여러분의 어플리케이션이 브라우저를 통해 나타내는 오류의 결과는 `config/app.php` 설정 파일의 `app.debug` 설정 옵션을 통해 제어됩니다. 기본으로, 이 설정 옵션은 `.env` 파일에 있는 `APP_DEBUG` 환경 변수를 준수하도록 되어있습니다.
24+
25+
로컬 개발에서는, `APP_DEBUG` 환경 변수를 `true`로 설정해야 합니다. **여러분의 프로덕션 환경에서는, 이 값이 항상 `false`여야 합니다.**
26+
27+
<a name="handling-errors"></a>
28+
## 오류 처리
29+
30+
모든 예외는 `App\Exceptions\Handler` 클래스에서 처리 됩니다. 이 클래스는 다음의 두가지 메서드를 포함하고 있습니다: `report`, `render`.
31+
32+
`report` 메서드는 예외를 로그하거나 [BugSnag](https://bugsnag.com)같은 외부 서비스로 전송하는데 사용됩니다. 기본적으로, `report` 메소드는 간단히 예외가 로그되는 부모 클래스의 기본 구현 클래스로 예외를 전달합니다. 하지만, 여러분은 원하는대로 예외를 로그 할 수 있습니다. 만약 다른 형식의 예외를 다른 방법으로 보고해야 한다면, PHP의 `instanceof` 비교 연산자를 사용 할 수 있습니다:
33+
34+
/**
35+
* 예외를 보고하거나 로그합니다
36+
*
37+
* 이곳은 예외를 Sentry, Bugsnag 등으로 전송하는 좋은 위치입니다
38+
*
39+
* @param \Exception $e
40+
* @return void
41+
*/
42+
public function report(Exception $e)
43+
{
44+
if ($e instanceof CustomException)
45+
{
46+
//
47+
}
48+
49+
return parent::report($e);
50+
}
51+
52+
`render` 메서드는 예외를 브라우저로 되돌려보내는 HTTP 응답으로 변환하는 책임을 지고 있습니다. 기본적으로, 예외는 여러분을 위해 응답을 생성해주는 기본 클래스로 전달 됩니다. 하지만, 여러분은 예외 형식을 확인 하거나 여러분만의 응답을 반환 할 수도 있습니다.
53+
54+
예외 처리의 `dontReport` 속성은 로그되지 말아야하는 예외 형식 배열을 포함합니다. 기본적으로, 404 오류의 예외 결과는 로그 파일에 작성되지 않습니다. 필요에 따라 다른 예외 형식들을 이 배열에 추가하세요.
55+
56+
<a name="http-exceptions"></a>
57+
## HTTP 예외
58+
59+
몇몇의 예외들은 서버에서 HTTP 오류를 표시합니다. 예를 들어, "page not found" (404) 오류, "unauthorized error" (401) 오류 또는 개발자가 생성한 500 오류가 될 수 있습니다. 이러한 응답을 반환하려면, 다음을 사용하세요:
60+
61+
abort(404);
62+
63+
옵션으로, 응답문을 제공 할 수도 있습니다:
64+
65+
abort(403, 'Unauthorized action.');
66+
67+
이 메서드는 요청의 라이프사이클동안 언제든지 사용 될 수 있습니다.
68+
69+
### 사용자 정의 404 오류 페이지
70+
71+
모든 404 오류에 사용자 정의 뷰를 반환 하려면, `resources/views/errors/404.blade.php` 파일을 생성하세요. 이 뷰는 어플리케이션에 의해 생성되는 모든 404 오류들에게 제공 됩니다.
72+
73+
<a name="logging"></a>
74+
## 로깅
75+
76+
라라벨 로깅 기능은 강력한 [Monolog](http://github.com/seldaek/monolog) 라이브러리 위에 간단한 레이어를 제공합니다. 기본적으로, 라라벨은 `storage/logs` 디렉토리에 저장되는 일별 로그파일을 생성하도록 설정되어 있습니다. 아래처럼 로그 정보를 작성 할 수 있습니다:
77+
78+
Log::info('도움이 되는 정보입니다.');
79+
80+
Log::warning('무언가가 잘못될 수 있습니다.');
81+
82+
Log::error('무언가가 정말 잘못 되었습니다.');
83+
84+
로거는 [RFC 5424](http://tools.ietf.org/html/rfc5424)에 정의되어있는 다음의 7 가지 로깅 레벨을 제공합니다: **debug**, **info**, **notice**, **warning**, **error**, **critical**, 그리고 **alert**.
85+
86+
아무 문맥 데이터 배열 또한 로그 메서드에 전달 될 수 있습니다:
87+
88+
Log::info('로그 메세지', ['context' => '유용한 다른 정보']);
89+
90+
Monolog는 로깅에 사용할 수 있는 다양한 추가 핸들러를 갖고 있습니다. 필요에 따라, 라라벨에 사용되는 Monolog 인스턴스를 액세스 할 수도 있습니다:
91+
92+
$monolog = Log::getMonolog();
93+
94+
여러분은 또한 로그에 전달되는 모든 메세지를 캐치하는 이벤트를 등록 할 수도 있습니다:
95+
96+
#### 로그 이벤트 리스너 등록
97+
98+
Log::listen(function($level, $message, $context)
99+
{
100+
//
101+
});

0 commit comments

Comments
 (0)