차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
ko:bs2_getfilteredlog [2016/07/12 08:49] 127.0.0.1 바깥 편집 |
ko:bs2_getfilteredlog [2024/02/27 14:08] (현재) |
||
---|---|---|---|
줄 5: | 줄 5: | ||
===== BS2_GetFilteredLog ===== | ===== BS2_GetFilteredLog ===== | ||
- | 주어진 조건을 만족하는 모든 로그 레코드를 가져옵니다. | + | ''[지원중단]'' 주어진 조건을 만족하는 모든 로그 레코드를 가져옵니다. |
+ | <callout type="warning" icon="true"> | ||
+ | **중요** \\ | ||
+ | 장치 로그 필터링 함수 [[BS2_GetFilteredLog]]는 서버가 정해준 조건을 기준으로 장치의 로그가 조건에 부합하는지 검토합니다. \\ | ||
+ | 이는 장치가 로그 필터링을 하는데 많은 시간이 소요될 수 있음을 의미하며, 장치가 가지고 있는 로그가 늘어날수록 시간이 더 많이 소요됨을 의미합니다. \\ \\ | ||
+ | |||
+ | 또한, 로그는 장치에 영구적으로 보관되지 않습니다. \\ | ||
+ | 장치가 보유할 수 있는 최대 로그 수를 초과할 경우, 장치는 가장 오래된 로그부터 덮어쓰게 되므로 일정 기간이 지난 로그는 자동으로 삭제될 수 있습니다. \\ | ||
+ | 장치의 모든 로그는 서버에 보관하고 관리하는 것을 권장합니다. \\ \\ | ||
+ | |||
+ | 장치로부터 로그를 일괄 수신하는 [[BS2_GetLog]] 함수와 이후로 발생하는 로그만 실시간으로 수신할 수 있는[[BS2_StartMonitoringLog]] 함수를 \\ | ||
+ | 적절히 조합하여 장치의 모든 로그를 서버가 적당한 DBMS에 보관하고, DBMS로부터 로그를 필터링하는 것을 권장합니다. \\ | ||
+ | </callout> | ||
==== 함수 ==== | ==== 함수 ==== | ||
<code cpp> | <code cpp> | ||
줄 34: | 줄 46: | ||
==== 반환값 ==== | ==== 반환값 ==== | ||
성공적으로 수행될 경우 ''BS_SDK_SUCCESS''를 반환하고, 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. | 성공적으로 수행될 경우 ''BS_SDK_SUCCESS''를 반환하고, 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. | ||
+ | ==== 샘플코드 ==== | ||
+ | C# | ||
+ | <code cpp> | ||
+ | Type structureType = typeof(BS2Event); | ||
+ | int structSize = Marshal.SizeOf(structureType); | ||
+ | IntPtr uid = IntPtr.Zero; | ||
+ | UInt16 eventCode = 0; | ||
+ | UInt32 start = 0; | ||
+ | UInt32 end = 0; | ||
+ | byte tnaKey = 0; | ||
+ | IntPtr outEventLogObjs = IntPtr.Zero; | ||
+ | UInt32 outNumEventLogs = 0; | ||
+ | |||
+ | BS2ErrorCode result = (BS2ErrorCode)API.BS2_GetFilteredLog(sdkContext, deviceID, uid, eventCode, start, end, tnaKey, out outEventLogObjs, out outNumEventLogs); | ||
+ | if (result != BS2ErrorCode.BS_SDK_SUCCESS) | ||
+ | { | ||
+ | Console.WriteLine("Got error({0}).", result); | ||
+ | } | ||
+ | else if (outNumEventLogs > 0) | ||
+ | { | ||
+ | IntPtr curEventLogObjs = outEventLogObjs; | ||
+ | for (int idx = 0; idx < outNumEventLogs; idx++) | ||
+ | { | ||
+ | BS2Event eventLog = (BS2Event)Marshal.PtrToStructure(curEventLogObjs, structureType); | ||
+ | Console.WriteLine(Util.GetLogMsg(eventLog)); | ||
+ | curEventLogObjs = (IntPtr)((long)curEventLogObjs + structSize); | ||
+ | } | ||
+ | |||
+ | API.BS2_ReleaseObject(outEventLogObjs); | ||
+ | } | ||
+ | |||
+ | </code> | ||
==== 함께 보기 ==== | ==== 함께 보기 ==== | ||
[[BS2_GetLog]]\\ [[BS2_ClearLog]] | [[BS2_GetLog]]\\ [[BS2_ClearLog]] |