diff options
Diffstat (limited to 'internal/clients/tailclient.go')
| -rw-r--r-- | internal/clients/tailclient.go | 34 |
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{ |
