Public/New-Logger.ps1
function New-Logger { <# .SYNOPSIS Creates a configured logger with console and file appenders .DESCRIPTION Initializes a new logger instance with default console output and file logging .PARAMETER LogDirectory Target directory for log files (default: module's Logs directory) .EXAMPLE $logger = New-Logger -LogDirectory "C:\MyApp\Logs" .LINK https://github.com/chadnpc/cliHelper.logger/blob/main/Public/New-Logger.ps1 #> [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Justification = 'No system state is being changed')] [CmdletBinding()] param( [string]$LogDirectory = $([Logger]::DefaultLogDirectory) ) Process { # Create logger with custom directory $logger = [Logger]::new($LogDirectory) # Add console appender $consoleAppender = [ConsoleAppender]::new() $logger.Appenders.Add($consoleAppender) # Add file appender $fileAppender = [FileAppender]::new((Join-Path $LogDirectory "application.log")) $logger.Appenders.Add($fileAppender) return $logger } } |