2010-12-19 5 views
0

UI, 컨트롤러, 비즈니스 로직 및 데이터 액세스 레이어와 같은 레이어가있는 애플리케이션을 잠시 들여다 보겠습니다. UI는 Controller와 통신하고 Controller는 Business Logic과 통신하며 Business Logic은 Data Access 계층과 통신합니다. 또한 관리자가 응용 프로그램의 문제를 해결하는 데 사용할 수있는 오류 메시지와 예외가있는 테이블을 데이터베이스에 가지고 있다고 가정합니다.SQL 예외 로깅이 어떤 계층에서 발생해야합니까?

데이터 액세스 레이어에 SQL 예외가 발생하면 (예 : 네트워크 문제, 문자열이 잘린 경우 등) 예외 정보가 기록되기 전에 얼마나 멀리 올라야합니까? 로그에는 개발자가 문제를 추적 할 수있는 충분한 정보를 제공하는 여러 계층의 메시지가 포함되는 것이 이상적입니다. 데이터 액세스 레이어의 SQL 예외가 UI까지 진행되고 거기에 기록 될 수 있습니까? 또는 로컬에서 잡아서 기록하고 재 작성하거나 다른 사용자 정의 예외로 래핑해야합니까? 또는 데이터 액세스 계층에서 문제가 있는지 여부를 나타내는 플래그가있는 특수한 유형을 반환해야하며, 그렇다면 예외 정보도 첨부해야합니다. 또한 SQL 예외/스택 추적 정보에 대한 보안 문제가 UI까지 적용됩니까?

나는 이것이 약간의 주관적인 질문 일 수 있다는 것을 알고 있지만 전문가들의 의견에 대해서는 궁금합니다. 설명이 필요한 경우 알려주십시오.

답변

2

예외는 서비스 계층에서 벗어나지 않아야합니다. UI를 제거하면 서비스가 여전히 작동하기를 원하지 않습니까?

로깅을 애스펙트에 넣고 선언적으로 서비스 인터페이스에 적용하기 쉽기 때문에 이는 또한 의미가 있습니다.

사용자 지정 예외가 값을 추가하면 랩하고 다시 게시 할 수 있습니다.

관련 문제