summaryrefslogtreecommitdiff
path: root/internal/clients/tailclient.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/clients/tailclient.go')
-rw-r--r--internal/clients/tailclient.go34
1 files changed, 32 insertions, 2 deletions
diff --git a/internal/clients/tailclient.go b/internal/clients/tailclient.go
index f71da41..9f208a2 100644
--- a/internal/clients/tailclient.go
+++ b/internal/clients/tailclient.go
@@ -5,12 +5,42 @@ import (
"github.com/mimecast/dtail/internal/omode"
)
-// TailClient is used for tailing remote log files (opening, seeking to the end and returning only new incoming lines).
+// TailClient provides distributed log file tailing functionality, continuously
+// monitoring remote log files and streaming new content as it appears. Unlike
+// traditional tail implementations, TailClient can monitor multiple files across
+// multiple servers simultaneously, aggregating the results in real-time.
+//
+// Key features:
+// - Continuous monitoring of log files across multiple servers
+// - Real-time streaming of new content only (seeks to end of files)
+// - Automatic connection retry for long-running operations
+// - Regex-based line filtering with normal and inverted matching
+// - Graceful handling of log rotation and file recreation
+//
+// TailClient embeds CommonClient to inherit standard connection management,
+// SSH authentication, and command generation capabilities.
type TailClient struct {
CommonClient
}
-// NewTailClient returns a new TailClient.
+// NewTailClient creates a new TailClient configured for distributed log tailing.
+// This constructor sets up the client for continuous monitoring operations with
+// automatic retry enabled for long-running tail operations.
+//
+// Parameters:
+// args: Complete configuration arguments including servers, files, and options
+//
+// Returns:
+// *TailClient: Configured client ready to start tailing operations
+// error: Configuration or initialization error, if any
+//
+// Configuration:
+// - Sets operating mode to TailClient
+// - Enables automatic connection retry for continuous operation
+// - Initializes regex compilation and SSH authentication
+// - Establishes connections to all discovered servers
+//
+// The returned client is fully initialized and ready to call Start().
func NewTailClient(args config.Args) (*TailClient, error) {
args.Mode = omode.TailClient
c := TailClient{