{"id":20691311,"url":"https://github.com/jtom38/chainsaw","last_synced_at":"2026-04-18T21:02:37.437Z","repository":{"id":103437525,"uuid":"149346879","full_name":"jtom38/Chainsaw","owner":"jtom38","description":"PowerShell Module to handle logging requests to different Targets.","archived":false,"fork":false,"pushed_at":"2019-03-19T13:46:28.000Z","size":748,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T01:30:04.854Z","etag":null,"topics":["console-log","csv","eventview","microsoft-teams","powershell-module"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jtom38.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-18T20:17:25.000Z","updated_at":"2022-09-16T15:16:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"b17cfbb4-90d9-475b-a3b7-6b36b17c75cc","html_url":"https://github.com/jtom38/Chainsaw","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/jtom38/Chainsaw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtom38%2FChainsaw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtom38%2FChainsaw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtom38%2FChainsaw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtom38%2FChainsaw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jtom38","download_url":"https://codeload.github.com/jtom38/Chainsaw/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtom38%2FChainsaw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31984557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"ssl_error","status_checked_at":"2026-04-18T20:23:29.375Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["console-log","csv","eventview","microsoft-teams","powershell-module"],"created_at":"2024-11-16T23:16:12.881Z","updated_at":"2026-04-18T21:02:37.432Z","avatar_url":"https://github.com/jtom38.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chainsaw\r\n\r\n## About\r\n\r\nThis project started off as a CSV logger for some process updates that I needed to make.  But over time it grew into a project that would let me add new loggers as the team needed/wanted more ways to send log information.  I did not want to have to keep adding more lines just for different loggers so Chainsaw came to fix that issue.\r\n\r\nWith Chainsaw you can enable different targets and define what message will go to that target.  If you only want Error messages to be passed to CSV, you can.  If you want to watch the process and see all messages you can enable that with the Console logger.  As new targets get added it will be the same command that is passed currently.  My goal with Chainsaw is to make it easy to use and have the flexibility to be able to pick what messages go where.\r\n\r\n## Targets\r\n\r\nTargets are the core of what Chainsaw will work with.  Here are the currently available targets with the current version.\r\n\r\n* Console\r\n* CSV\r\n* Microsoft Teams\r\n\r\nPending\r\n\r\n* Windows EventLog\r\n* SMTP\r\n* MSSQL\r\n* Discord\r\n* Slack\r\n\r\n## Install\r\n\r\nA module is available on PowerShell Galery so it is easy to install and update\r\n\r\n```PowerShell\r\nInstall-Module -Name Chainsaw\r\nUpdate-Module -Name Chainsaw\r\n```\r\n\r\n## How to Use\r\n\r\n1. Import Chainsaw\r\n2. Enable desired Targets\r\n\r\n```PowerShell\r\nEnable-ChainsawConsole -Levels @(\"Emergency\", \"Alert\", \"Critical\", \"Error\", \"Warning\", \"Notice\", \"Information\", \"Debug\") -MessageTemplate '#DateTime# #Level# #Message#'\r\n\r\nEnable-ChainsawCsv -LogPath '.\\log.csv' -Levels @(\"Emergency\", \"Alert\", \"Critical\", \"Error\", \"Warning\", \"Notice\", \"Information\", \"Debug\") -MessageTemplate \"#DateTime#, #Level#, #CallingFile#, #ErrorCode#, #LineNumber#, #Message#\"\r\n\r\nEnable-ChainsawTeams -URI \"https://FakeUrl.com\" -Levels @(\"Emergency\", \"Alert\", \"Critical\", \"Error\", \"Warning\", \"Notice\", \"Information\", \"Debug\") -MessageTitle 'Message From Chainsaw'\r\n```\r\n\r\n3. Log Messages\r\n\r\n```PowerShell\r\nInvoke-ChainsawMessage -Debug -Message 'Testing Chainsaw' -ErrorCode 100 -CallingFile $(Get-CurrentFileName) -LineNumber $(Get-CurrentLineNumber)\r\n```\r\n\r\n## Config\r\n\r\nYou can backup your config and store it in a JSON file.\r\n\r\n```PowerShell\r\nExport-ChainsawConfig -JsonPath '.\\chainsaw.json'\r\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjtom38%2Fchainsaw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjtom38%2Fchainsaw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjtom38%2Fchainsaw/lists"}