All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.highlight.sdk.HighlightSession Maven / Gradle / Ivy

package io.highlight.sdk;

import io.highlight.sdk.common.HighlightSessionId;
import io.highlight.sdk.common.Severity;
import io.highlight.sdk.common.record.HighlightErrorRecord;
import io.highlight.sdk.common.record.HighlightLogRecord;
import io.highlight.sdk.common.record.HighlightRecord;
import io.highlight.sdk.exception.HighlightInvalidRecordException;

/**
 * The HighlightSession class is represents a session for capturing log records
 * and errors. 
* It implements the HighlightSessionId interface which provides a unique * identifier for the session. */ public record HighlightSession(String sessionId) implements HighlightSessionId { /** * Captures a record and add the current session ID. * * @param record The builder used to build the log record. */ public void captureRecord(HighlightRecord.Builder record) { record.userSession(this); Highlight.captureRecord(record.build()); } /** * Captures the provided record.
* If the record is a HighlightLogRecord, a log record will be captured.
* If the record is a HighlightErrorRecord, an error record will be captured. *
* Otherwise, a HighlightInvalidRecordException will be thrown. * * @throws HighlightInvalidRecordException when the given class is invalid * @param record The record to be captured. */ public void captureRecord(HighlightRecord record) { if (record instanceof HighlightLogRecord logRecord) { this.captureRecord(HighlightRecord.log(logRecord)); } else if (record instanceof HighlightErrorRecord errorRecord) { this.captureRecord(HighlightRecord.error(errorRecord)); } else { throw new HighlightInvalidRecordException("Invalid record type", record); } } /** * Captures an error record for the provided throwable. * * @param error The throwable for which to capture an error record. */ public void captureException(Throwable error) { this.captureRecord(HighlightRecord.error() .throwable(error)); } /** * Captures a log record with the provided severity. * * @param severity The severity of the log record to be captured. */ public void captureLog(Severity severity) { this.captureRecord(HighlightRecord.log() .severity(severity)); } /** * Captures a log record with the provided severity and message. * * @param severity The severity of the log record to be captured. * @param message The message to be included in the log record. */ public void captureLog(Severity severity, String message) { this.captureRecord(HighlightRecord.log() .severity(severity) .message(message)); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy