Ключ-АСТРОМ OpenKit logging
Существует два разных способа ведения логов с помощью OpenKit:
- Настройка OpenKit для использования встроенного консольного логгера.
- Настройка OpenKit для использования собственной реализации логгера.
Ведение логов через консольный логгер
OpenKit включает в себя консольный логгер. По умолчанию все сообщения об ошибках или предупреждениях записываются в консоль stdout. При установке уровня логирования регистрируются все события логирования с тем же или более высоким уровнем.
OpenKit использует следующие уровни логирования:
| Уровень лога | Приоритет | Описание |
|---|---|---|
| Debug | 0 | Для отладки и разработки. Не рекомендуется для использования в производственной среде из-за большого объема записей в логах. |
| Info | 10 | Общий алгоритм работы OpenKit. |
| Warning | 20 | В библиотеке OpenKit обнаружены предупреждения, в том числе проблемы с использованием API. |
| Error | 30 | Ошибки, которые не могут быть обработаны OpenKit. |
| Java | OpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)
.withLogLevel(LogLevel.DEBUG) // enable Debug, Info, Warning, and Error log events .build(); |
|---|---|
| .NET | IOpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)
.WithLogLevel(LogLevel.DEBUG) // enable Debug, Info, Warning, and Error log events .Build(); |
| C++ | std::shared_pointer<openkit::IOpenKit> openKit =
openkit::astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID) .withLogLevel(LogLevel::LOG_LEVEL_DEBUG) // enable Debug, Info, Warning, and Error log events .build(); |
| C | struct OpenKitConfigurationHandle* configurationHandle = createOpenKitConfiguration(endpointURL, applicationID, deviceID);
useDefaultLogLevelForConfiguration(configurationHandle, LOGLEVEL_DEBUG); struct OpenKitHandle* openKitHandle = createastromkeyOpenKit(configurationHandle); |
| JavaScript | const openKit = new OpenKitBuilder(endpointURL, applicationID, deviceID)
.withLogLevel(LogLevel.Debug) // enable Debug, Info, Warning, and Error log events .build(); |
Ведение логов с помощью пользовательского логгера
Вы также можете настроить OpenKit с использованием собственной реализации логгера. Реализуйте собственный логгер для записи сообщений OpenKit, используя выбранную вами систему логирования.
| Java | .NET |
|---|---|
| import com.astromkey.openkit.api.Logger;
class MyCustomLoggerImpl implements Logger { // implement interface methods } Logger customLogger = new MyCustomLoggerImpl(); OpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID) .withLogger(customLogger) .build(); |
using astromkey.OpenKit.API.ILogger;
class MyCustomLoggerImpl : ILogger { // implement interface methods } ILogger customLogger = new MyCustomLoggerImpl(); IOpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID) .WithLogger(customLogger) .Build(); |
| C++ | C |
|---|---|
| class MyCustomLoggerImpl : public openkit::ILogger
{ // implement interface methods }; std::shared_ptr<openkit::ILogger> customLogger = std::make_shared<MyCustomLoggerImpl>(); std::shared_pointer<openkit::IOpenKit> openKit = openkit::astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID) .withLogger(customLogger) .build(); |
bool levelEnabledFunction(LOG_LEVEL level)
{ // return true if level is enabled, false otherwise } void logFunction(LOG_LEVEL level, const char* traceStatement) { // write trace statement } // create custom logger struct LoggerHandle* loggerHandle = createLogger(&levelEnabledFunction, &logFunction); // create OpenKit configuration and assign logger handle struct OpenKitConfigurationHandle* configurationHandle = createOpenKitConfiguration(endpointURL, applicationID, deviceID); useLoggerForConfiguration(configurationHandle, loggerHandle); struct OpenKitHandle* openKitHandle = createastromkeyOpenKit(configurationHandle); |
| JavaScript |
|---|
| class MyCustomLoggerFactory implements LoggerFactory {
// implement interface methods } const customLogger = new MyCustomLoggerFactory(); const openKit = new OpenKitBuilder(endpointURL, applicationID, deviceID) .withLoggerFactory(customLogger) .build(); |