{"id":22616598,"url":"https://github.com/amccool/am.elasticsearch.tracelistener","last_synced_at":"2025-04-11T12:24:02.390Z","repository":{"id":137291271,"uuid":"46001837","full_name":"amccool/AM.Elasticsearch.TraceListener","owner":"amccool","description":"A TraceListener(logger) for old-school .Net framework posting to ElasticSearch","archived":false,"fork":false,"pushed_at":"2022-06-22T19:14:32.000Z","size":104,"stargazers_count":9,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-11T04:46:33.703Z","etag":null,"topics":["diagnostics","dotnet","elasticsearch","kibana","logging","tracelistener"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amccool.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2015-11-11T18:39:04.000Z","updated_at":"2025-02-06T18:00:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"82cf65a6-940d-4986-a00b-a2c6231e9b88","html_url":"https://github.com/amccool/AM.Elasticsearch.TraceListener","commit_stats":null,"previous_names":["amccool/elasticsearch.diagnostics"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccool%2FAM.Elasticsearch.TraceListener","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccool%2FAM.Elasticsearch.TraceListener/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccool%2FAM.Elasticsearch.TraceListener/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccool%2FAM.Elasticsearch.TraceListener/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amccool","download_url":"https://codeload.github.com/amccool/AM.Elasticsearch.TraceListener/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248401419,"owners_count":21097328,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["diagnostics","dotnet","elasticsearch","kibana","logging","tracelistener"],"created_at":"2024-12-08T19:13:29.207Z","updated_at":"2025-04-11T12:24:02.364Z","avatar_url":"https://github.com/amccool.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AM.Elasticsearch.TraceListener\n\n## 3.0 Release Notes\n\nthe _type submitted is being changed from `Trace` to `doc` in preparation to posting to Elasticsearch 6.x, as _type is being deprecated.\n\nnuget version \u003e then 2.x have this change\n\n\n## 1.1 Release Notes\n\nthe attribute \n                `ElasticSearchIndex`\nis redundant, its value is ignored.   Next minor release it will be removed, which will cause a runtime failure at the first usage of the listener\n\n\n\n### Pull request builds\n\n[![Build status](https://ci.appveyor.com/api/projects/status/1let8gsvksxjv50c?svg=true)](https://ci.appveyor.com/project/amccool/elasticsearch-diagnostics)\n\nAM.Elasticsearch.TraceListener\n\n### Master build\n\n[![Build status](https://ci.appveyor.com/api/projects/status/1let8gsvksxjv50c/branch/master?svg=true)](https://ci.appveyor.com/project/amccool/elasticsearch-diagnostics/branch/master)\n\n\nElasticSearch TraceListener is a System.Diagnostics based TraceListener which submits trace events and data to ElasticSearch making them viewable with Kibana\n\n## Getting Started\n\n[![nuget downloads](https://img.shields.io/nuget/dt/AM.Elasticsearch.TraceListener.svg)](https://www.nuget.org/packages/AM.Elasticsearch.TraceListener/)\n[![nuget version](https://img.shields.io/nuget/v/AM.Elasticsearch.TraceListener.svg)](https://www.nuget.org/packages/AM.Elasticsearch.TraceListener/)\n\nInstall the package from nuget.org https://www.nuget.org/packages/AM.Elasticsearch.TraceListener/\n\n```ps\nInstall-Package AM.Elasticsearch.TraceListener\n```\n\nedit your app.config/web.config\n\n    \u003csystem.diagnostics\u003e\n        \u003csharedListeners\u003e\n            \u003cadd name=\"estl\" \n         type=\"AM.Elasticsearch.TraceListener.ElasticSearchTraceListener, AM.Elasticsearch.TraceListener\" \n         ElasticSearchUri=\"http://localhost:9200\" ElasticSearchTraceIndex=\"trace\" /\u003e\n        \u003c/sharedListeners\u003e\n        \u003ctrace autoflush=\"false\" indentsize=\"4\"\u003e\n          \u003clisteners\u003e\n            \u003c!--\u003cremove name=\"Default\" /\u003e--\u003e\n            \u003cadd name=\"estl\" /\u003e\n          \u003c/listeners\u003e\n        \u003c/trace\u003e\n    \u003csources\u003e\n      \u003csource name=\"MY-SILLY-TRACESOURCE\" switchValue=\"All\"\u003e\n        \u003clisteners\u003e\n          \u003cadd name=\"estl\" /\u003e\n        \u003c/listeners\u003e\n      \u003c/source\u003e\n      \u003csource name=\"System.Net\" switchValue=\"Error\"\u003e\n        \u003clisteners\u003e\n          \u003cadd name=\"estl\" /\u003e\n        \u003c/listeners\u003e\n      \u003c/source\u003e\n      \u003csource name=\"System.ServiceModel\" switchValue=\"All\"\u003e\n        \u003clisteners\u003e\n          \u003cadd name=\"estl\" /\u003e\n        \u003c/listeners\u003e\n      \u003c/source\u003e\n    \u003c/sources\u003e\n    \u003c/system.diagnostics\u003e\n\nThe kibana format of the index is \u003cElasticSearchTraceIndex\u003e-yyyy-MM-dd-HH\n\n## Usage\n\n    Trace.Write(\"sdgsgsgsgsgsgsgsgsgsgsg\");\n    \n    class MyBigFatGreekClass\n    {\n        private static readonly TraceSource _traceSource = new TraceSource(\"alextrace\", SourceLevels.Error);\n        public void LoveAndMarriage()\n        {\n            _traceSource.TraceEvent(TraceEventType.Verbose, 0, \"is {0} and all is well\", DateTime.UtcNow);\n            int x = 0;\n            try\n            {\n                int y = 99999 / x;\n            }\n            catch(Exception ex)\n            {\n                _traceSource.TraceData(TraceEventType.Error, 119999911, ex);\n            }\n        }\n        \n        public void DeathAndTaxes()\n        {\n            _traceSource.TraceData(TraceEventType.Warning, 119999911, DateTime.UtcNow);\n        }\n    }\n\n\n\n## Environmental setup\n\nYou need an ElasticSearch host, and likely you want Kibana to view the data\n\n### setup your ElasticSearch host\n\ntry using docker\n\nsee https://elk-docker.readthedocs.io/\n\n```bash\n$ sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk\n```\n\n### Run your traces to generate some data\n\nElasticsearch and Kibana needs some data to get started with\n\n### Configure ElasticSearch and Kibana\n\nNote that `trace` was used for the index prefix\n\ngo the kibana managment page\nhttp://192.168.1.1:5601/app/kibana#/management\n\nclick index patterns\nhttp://192.168.1.1:5601/app/kibana#/management/kibana/indices\n\nclick +Add New\ntype in the prefix you used (see above) `trace` adding a `dash`\n\nif you have data in ElasticSearch then it will display a Date field, which will be `UtcDateTime`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famccool%2Fam.elasticsearch.tracelistener","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famccool%2Fam.elasticsearch.tracelistener","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famccool%2Fam.elasticsearch.tracelistener/lists"}