SharePoint Server에서 진단 로그 보기
적용 대상:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
SharePoint Server의 ULS(Unified Logging Service) 로그 데이터를 사용하여 팜에서 발생하는 문제를 해결할 수 있습니다. ULS 로그는 로깅 설정에 따라 다양한 수준의 데이터를 수집할 수 있습니다. PowerShell을 사용하여 데이터를 필터링하고, 이를 다양한 방식으로 표시하고, 데이터를 데이터 표로 출력하여 데이터를 필터링, 정렬, 그룹화하고 Excel 2016으로 내보냅니다.
PowerShell을 사용하여 로그 이벤트 보기 및 필터링
PowerShell을 사용하여 로그 이벤트를 보고 필터링할 수 있습니다. SharePoint 중앙 관리 웹 사이트를 사용하여 로그 이벤트를 보거나 필터링할 수 없습니다.
PowerShell을 사용하여 로그 이벤트를 보고 필터링하려면
- 다음 멤버 자격이 있는지 확인합니다.
SQL Server 인스턴스에 대한 securityadmin 고정 서버 역할
업데이트하려는 모든 데이터베이스에 대한 db_owner 고정 데이터베이스 역할
PowerShell cmdlet을 실행 중인 서버의 Administrators 그룹
관리자는 Add-SPShellAdmin cmdlet을 사용하여 사용 권한을 부여할 수 있습니다.
참고
권한이 없는 경우 설치 관리자 또는 SQL Server 관리자에게 문의하여 권한을 요청하십시오. PowerShell 권한에 대한 자세한 내용은 Add-SPShellAdmin을 참조하십시오.
SharePoint 관리 셸로 이동합니다.
PowerShell 명령 프롬프트에 다음 명령을 입력합니다.
- 모든 추적 이벤트
Get-SPLogEvent
- 수준별
Get-SPLogEvent | Where-Object {$_.Level -eq "Information" }
- 영역별
Get-SPLogEvent | Where-Object {$_.Area -eq <Area>}
Where <Area> 는 Area 속성의 값입니다.
- 범주별
Get-SPLogEvent | Where-Object {$_.Category -eq <Category>
여기서 <Category> 는 Category 속성의 값입니다.
- 이벤트 ID별
Get-SPLogEvent | Where-Object {$_.EventID -eq <EventID>}
여기서 <EventID> 는 EventID 속성의 값입니다.
- 메시지 내용별
Get-SPLogEvent | Where-Object {$_.Message -like "<string>"}
여기서 <문자열> 은 이벤트 메시지에 있는 문자열입니다.
- 프로세스별
Get-SPLogEvent | Where-Object {$_.Process -like "<Process>"}
여기서 <Process> 는 Process 속성의 값입니다.
기본적으로 명령은 기본 ULS 로그 폴더에서 데이터를 검색합니다. 네트워크의 공유 폴더에 있는 추적 이벤트를 보고 필터링하려면 Get-SPLogEvent cmdlet의 Directory 매개 변수를 사용합니다.
각 추적 이벤트에 대한 더 많은 세부 정보를 보려면 명령 끝에 Format-List cmdlet을 사용합니다. 예:
Get-SPLogEvent | Where-Object {$_.Area -eq "SharePoint Foundation"} | Format-List
자세한 내용은 Get-SPLogEvent를 참조하세요.
PowerShell Out-GridView cmdlet을 사용하여 진단 로그 보기 및 내보내기
PowerShell은 PowerShell 명령의 결과 테이블 형식 데이터를 별도의 창에서 필터링 가능하고 검색 가능한 데이터 그리드에 표시하는 강력하고 사용하기 쉬운 기능을 제공합니다. 이 데이터 표를 사용하여 로그 이벤트를 보고 데이터에 대해 다음 작업을 수행할 수 있습니다.
데이터를 열별로 정렬합니다.
데이터를 그룹 단위로 봅니다.
데이터를 수준, 영역, 범주, 메시지, 이벤트 ID 또는 타임스탬프별로 필터링합니다.
데이터에서 문자열을 검색합니다.
원시 데이터, 정렬된 데이터 또는 필터링된 데이터를 스프레드시트로 내보냅니다.
참고
Out-GridView cmdlet은 Format 동사를 사용하는 cmdlet과 함께 사용할 수 없습니다.
Out-GridView cmdlet은 개체를 수신하며, Format 동사를 사용하는 cmdlet은 형식화된 텍스트만 반환합니다.
>결과를 필터링하고 Out-GridView cmdlet에 전달하는 Where-Object cmdlet을 사용하여 데이터의 하위 집합을 볼 수 있습니다. 예를 들면 Get-SPLogEvent | Where-Object {$_.Area -eq "SharePoint Foundation"} | Out-GridView
와 같습니다.
> 그리드가 수백 개 이상의 행을 표시하는 경우 특히 복잡한 필터링 작업을 수행하는 경우 느리게 실행될 수 있습니다. 이때 성능을 높이려면 데이터를 Excel 2016으로 내보냅니다.
Windows PowerShell을 사용하여 진단 로그를 보고 필터링하려면
- 다음 멤버 자격이 있는지 확인합니다.
SQL Server 인스턴스에 대한 securityadmin 고정 서버 역할
업데이트하려는 모든 데이터베이스에 대한 db_owner 고정 데이터베이스 역할
PowerShell cmdlet을 실행 중인 서버의 Administrators 그룹
관리자는 Add-SPShellAdmin cmdlet을 사용하여 사용 권한을 부여할 수 있습니다.
참고
권한이 없는 경우 설치 관리자 또는 SQL Server 관리자에게 문의하여 권한을 요청하십시오. PowerShell 권한에 대한 자세한 내용은 Add-SPShellAdmin을 참조하십시오.
SharePoint 관리 셸로 이동합니다.
PowerShell 명령 프롬프트에 다음 명령을 입력합니다.
Get-SPLogEvent | Out-GridView
열을 정렬하려면 열 머리글을 클릭합니다.
특정 문자열을 검색하려면 필터 상자에 해당 문자열을 입력합니다. 검색은 모든 열 및 행에 대해 수행됩니다. 검색을 지우려면 X를 클릭합니다.
하나의 기준에 대해서만 데이터를 필터링하려면 검색 상자에 <속성 이름>:<값>과 같은 명령을 입력합니다. 예를 들어 SharePoint Foundation 2013에서 생성된 모든 로그 항목을 검색하려면 Area:SharePoint Foundation 명령을 입력합니다. 필터를 지우려면 X를 클릭합니다.
두 개 이상의 기준을 사용하거나 기준을 "포함, 시작 문자, 끝 문자" 또는 다른 메서드와 함께 사용하여 데이터를 필터링하려면
조건 추가 단추를 클릭합니다.
필터링할 속성의 확인란을 클릭하고 추가를 클릭합니다.
포함을 클릭하여 다른 필터 메서드로 변경합니다. 사용할 수 있는 메서드에는 포함, 포함하지 않음, 시작 문자, 같음, 같지 않음, 끝 문자, 비어 있음 및 비어 있지 않음이 있습니다.
텍스트 상자에 값을 입력합니다.
"b" 단계에서 선택한 각 속성에 대해 "c" 및 "d" 단계를 반복합니다.
모든 필터링 조건을 지정하면 해당 조건을 만족하는 데이터가 표시됩니다.
특정 필터를 지우려면 X 단추를 클릭합니다.
모든 필터를 지우려면 쿼리 보기를 축소한 후 모두 지우기 단추를 클릭합니다.
표 데이터를 스프레드시트로 내보내려면
내보낼 행을 선택합니다. 행을 여러 개 선택하려면 Shift 키를 누른 상태로 마우스를 끌어 행 블록을 선택하거나, Ctrl 키를 누른 상태로 클릭하여 여러 개의 특정 행을 선택하거나, Ctrl+A를 사용하여 모든 행을 선택하면 됩니다.
데이터를 스프레드시트에 복사하기 전에 결과를 필터링하고 정렬할 수도 있습니다. 데이터를 정렬하거나 필터링하면 볼 수 있는 결과 데이터만 복사됩니다.
Ctrl+C를 사용하여 선택한 행을 복사합니다.
스프레드시트 통합 문서 페이지를 열고 Ctrl+V를 사용하여 복사한 행을 페이지에 붙여 넣습니다.
자세한 내용은 Out-GridView 및 Out-GridView 다시 보기를 참조하세요.