{"id":33179570,"url":"https://github.com/internetitem/logback-elasticsearch-appender","last_synced_at":"2026-03-13T15:41:40.020Z","repository":{"id":30058068,"uuid":"33607449","full_name":"internetitem/logback-elasticsearch-appender","owner":"internetitem","description":"Logback Elasticsearch Appender","archived":false,"fork":false,"pushed_at":"2023-11-07T04:16:10.000Z","size":112,"stargazers_count":236,"open_issues_count":49,"forks_count":136,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-07-19T23:53:13.135Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/internetitem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-04-08T13:07:13.000Z","updated_at":"2025-05-25T19:31:43.000Z","dependencies_parsed_at":"2024-06-21T15:36:56.501Z","dependency_job_id":"eadf221c-9320-4663-9431-4fd664e1b88f","html_url":"https://github.com/internetitem/logback-elasticsearch-appender","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/internetitem/logback-elasticsearch-appender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetitem%2Flogback-elasticsearch-appender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetitem%2Flogback-elasticsearch-appender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetitem%2Flogback-elasticsearch-appender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetitem%2Flogback-elasticsearch-appender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/internetitem","download_url":"https://codeload.github.com/internetitem/logback-elasticsearch-appender/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetitem%2Flogback-elasticsearch-appender/sbom","scorecard":{"id":491501,"data":{"date":"2025-08-11","repo":{"name":"github.com/internetitem/logback-elasticsearch-appender","commit":"c708131107e56570674b1a59f241a8b782cfa60f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.2,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 8/18 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"57 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-vmfg-rjjm-rjrj","Warn: Project is vulnerable to: GHSA-vmq6-5m68-f53m","Warn: Project is vulnerable to: GHSA-668q-qrv7-99fm","Warn: Project is vulnerable to: GHSA-6v67-2wr5-gvf4","Warn: Project is vulnerable to: GHSA-pr98-23f8-jwxv","Warn: Project is vulnerable to: GHSA-h46c-h94j-95f3","Warn: Project is vulnerable to: GHSA-wf8f-6423-gfxg","Warn: Project is vulnerable to: GHSA-288c-cq4h-88gq","Warn: Project is vulnerable to: GHSA-4gq5-ch57-c2mg","Warn: Project is vulnerable to: GHSA-4w82-r329-3q67","Warn: Project is vulnerable to: GHSA-57j2-w4cx-62h2","Warn: Project is vulnerable to: GHSA-5949-rw7g-wx7w","Warn: Project is vulnerable to: GHSA-5r5r-6hpj-8gg9","Warn: Project is vulnerable to: GHSA-5ww9-j83m-q7qx","Warn: Project is vulnerable to: GHSA-645p-88qh-w398","Warn: Project is vulnerable to: GHSA-6fpp-rgj9-8rwc","Warn: Project is vulnerable to: GHSA-85cw-hj65-qqv9","Warn: Project is vulnerable to: GHSA-89qr-369f-5m5x","Warn: Project is vulnerable to: GHSA-8c4j-34r4-xr8g","Warn: Project is vulnerable to: GHSA-8w26-6f25-cm9x","Warn: Project is vulnerable to: GHSA-9gph-22xh-8x98","Warn: Project is vulnerable to: GHSA-9m6f-7xcq-8vf8","Warn: Project is vulnerable to: GHSA-c8hm-7hpq-7jhg","Warn: Project is vulnerable to: GHSA-cf6r-3wgc-h863","Warn: Project is vulnerable to: GHSA-cggj-fvv3-cqwv","Warn: Project is vulnerable to: GHSA-cjjf-94ff-43w7","Warn: Project is vulnerable to: GHSA-cmfg-87vq-g5g4","Warn: Project is vulnerable to: GHSA-cvm9-fjm9-3572","Warn: Project is vulnerable to: GHSA-f3j5-rmmp-3fc5","Warn: Project is vulnerable to: GHSA-f9xh-2qgp-cq57","Warn: Project is vulnerable to: GHSA-fmmc-742q-jg75","Warn: Project is vulnerable to: GHSA-fqwf-pjwf-7vqv","Warn: Project is vulnerable to: GHSA-gjmw-vf9h-g25v","Warn: Project is vulnerable to: GHSA-gwp4-hfv6-p7hw","Warn: Project is vulnerable to: GHSA-gww7-p5w4-wrfv","Warn: Project is vulnerable to: GHSA-h3cw-g4mq-c5x2","Warn: Project is vulnerable to: GHSA-h592-38cm-4ggp","Warn: Project is vulnerable to: GHSA-h822-r4r5-v8jg","Warn: Project is vulnerable to: GHSA-jjjh-jjxp-wpff","Warn: Project is vulnerable to: GHSA-m6x4-97wx-4q27","Warn: Project is vulnerable to: GHSA-mph4-vhrx-mv67","Warn: Project is vulnerable to: GHSA-mx7p-6679-8g3q","Warn: Project is vulnerable to: GHSA-p43x-xfjf-5jhr","Warn: Project is vulnerable to: GHSA-q93h-jc49-78gg","Warn: Project is vulnerable to: GHSA-qjw2-hr98-qgfh","Warn: Project is vulnerable to: GHSA-qr7j-h6gg-jmgc","Warn: Project is vulnerable to: GHSA-qxxx-2pp7-5hmx","Warn: Project is vulnerable to: GHSA-r3gr-cxrf-hg25","Warn: Project is vulnerable to: GHSA-r695-7vr9-jgc2","Warn: Project is vulnerable to: GHSA-rfx6-vp9g-rh7v","Warn: Project is vulnerable to: GHSA-rgv9-q543-rqg4","Warn: Project is vulnerable to: GHSA-rpr3-cw39-3pxh","Warn: Project is vulnerable to: GHSA-v585-23hc-c647","Warn: Project is vulnerable to: GHSA-vfqx-33qm-g869","Warn: Project is vulnerable to: GHSA-w3f4-3q6j-rh82","Warn: Project is vulnerable to: GHSA-wh8g-3j2c-rqj5","Warn: Project is vulnerable to: GHSA-7r82-7xv7-xcpj"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T19:16:59.005Z","repository_id":30058068,"created_at":"2025-08-19T19:16:59.005Z","updated_at":"2025-08-19T19:16:59.005Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30469337,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T11:00:43.441Z","status":"ssl_error","status_checked_at":"2026-03-13T11:00:23.173Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2025-11-16T03:00:36.837Z","updated_at":"2026-03-13T15:41:40.013Z","avatar_url":"https://github.com/internetitem.png","language":"Java","funding_links":[],"categories":["日志库"],"sub_categories":[],"readme":"Logback Elasticsearch Appender\n===============================\n\n[![Build Status](https://travis-ci.org/internetitem/logback-elasticsearch-appender.svg?branch=master)](https://travis-ci.org/internetitem/logback-elasticsearch-appender)\n\nSend log events directly from Logback to Elasticsearch. Logs are delivered asynchronously (i.e. not on the main thread) so will not block execution of the program. Note that the queue backlog can be bounded and messages *can* be lost if Elasticsearch is down and either the backlog queue is full or the producer program is trying to exit (it will retry up to a configured number of attempts, but will not block shutdown of the program beyond that). For long-lived programs, this should not be a problem, as messages should be delivered eventually.\n\nThis software is dual-licensed under the EPL 1.0 and LGPL 2.1, which is identical to the [Logback License](http://logback.qos.ch/license.html) itself.\n\nUsage\n=====\nInclude slf4j and logback as usual (depending on this library will *not* automatically pull them in).\n\nIn your `pom.xml` (or equivalent), add:\n\n     \u003cdependency\u003e\n        \u003cgroupId\u003ecom.internetitem\u003c/groupId\u003e\n        \u003cartifactId\u003elogback-elasticsearch-appender\u003c/artifactId\u003e\n        \u003cversion\u003e1.6\u003c/version\u003e\n     \u003c/dependency\u003e\n\nIn your `logback.xml`:\n\n        \u003cappender name=\"ELASTIC\" class=\"com.internetitem.logback.elasticsearch.ElasticsearchAppender\"\u003e\n            \u003curl\u003ehttp://yourserver/_bulk\u003c/url\u003e\n            \u003cindex\u003elogs-%date{yyyy-MM-dd}\u003c/index\u003e\n            \u003ctype\u003etester\u003c/type\u003e\n            \u003cloggerName\u003ees-logger\u003c/loggerName\u003e \u003c!-- optional --\u003e\n            \u003cerrorLoggerName\u003ees-error-logger\u003c/errorLoggerName\u003e \u003c!-- optional --\u003e\n            \u003cconnectTimeout\u003e30000\u003c/connectTimeout\u003e \u003c!-- optional (in ms, default 30000) --\u003e\n            \u003cerrorsToStderr\u003efalse\u003c/errorsToStderr\u003e \u003c!-- optional (default false) --\u003e\n            \u003cincludeCallerData\u003efalse\u003c/includeCallerData\u003e \u003c!-- optional (default false) --\u003e\n            \u003clogsToStderr\u003efalse\u003c/logsToStderr\u003e \u003c!-- optional (default false) --\u003e\n            \u003cmaxQueueSize\u003e104857600\u003c/maxQueueSize\u003e \u003c!-- optional (default 104857600) --\u003e\n            \u003cmaxRetries\u003e3\u003c/maxRetries\u003e \u003c!-- optional (default 3) --\u003e\n            \u003creadTimeout\u003e30000\u003c/readTimeout\u003e \u003c!-- optional (in ms, default 30000) --\u003e\n            \u003csleepTime\u003e250\u003c/sleepTime\u003e \u003c!-- optional (in ms, default 250) --\u003e\n            \u003crawJsonMessage\u003efalse\u003c/rawJsonMessage\u003e \u003c!-- optional (default false) --\u003e\n            \u003cincludeMdc\u003efalse\u003c/includeMdc\u003e \u003c!-- optional (default false) --\u003e\n            \u003cmaxMessageSize\u003e100\u003c/maxMessageSize\u003e \u003c!-- optional (default -1 --\u003e\n            \u003cauthentication class=\"com.internetitem.logback.elasticsearch.config.BasicAuthentication\" /\u003e \u003c!-- optional --\u003e\n            \u003cproperties\u003e\n                \u003cproperty\u003e\n                    \u003cname\u003ehost\u003c/name\u003e\n                    \u003cvalue\u003e${HOSTNAME}\u003c/value\u003e\n                    \u003callowEmpty\u003efalse\u003c/allowEmpty\u003e\n                \u003c/property\u003e\n                \u003cproperty\u003e\n                    \u003cname\u003eseverity\u003c/name\u003e\n                    \u003cvalue\u003e%level\u003c/value\u003e\n                \u003c/property\u003e\n                \u003cproperty\u003e\n                    \u003cname\u003ethread\u003c/name\u003e\n                    \u003cvalue\u003e%thread\u003c/value\u003e\n                \u003c/property\u003e\n                \u003cproperty\u003e\n                    \u003cname\u003estacktrace\u003c/name\u003e\n                    \u003cvalue\u003e%ex\u003c/value\u003e\n                \u003c/property\u003e\n                \u003cproperty\u003e\n                    \u003cname\u003elogger\u003c/name\u003e\n                    \u003cvalue\u003e%logger\u003c/value\u003e\n                \u003c/property\u003e\n            \u003c/properties\u003e\n            \u003cheaders\u003e\n                \u003cheader\u003e\n                    \u003cname\u003eContent-Type\u003c/name\u003e\n                    \u003cvalue\u003eapplication/json\u003c/value\u003e\n                \u003c/header\u003e\n            \u003c/headers\u003e\n        \u003c/appender\u003e\n\n        \u003croot level=\"info\"\u003e\n            \u003cappender-ref ref=\"FILELOGGER\" /\u003e\n            \u003cappender-ref ref=\"ELASTIC\" /\u003e\n        \u003c/root\u003e\n\n        \u003clogger name=\"es-error-logger\" level=\"INFO\" additivity=\"false\"\u003e\n            \u003cappender-ref ref=\"FILELOGGER\" /\u003e\n        \u003c/logger\u003e\n\n        \u003clogger name=\"es-logger\" level=\"INFO\" additivity=\"false\"\u003e\n            \u003cappender name=\"ES_FILE\" class=\"ch.qos.logback.core.rolling.RollingFileAppender\"\u003e\n                \u003c!-- ... --\u003e\n                \u003cencoder\u003e\n                    \u003cpattern\u003e%msg\u003c/pattern\u003e \u003c!-- This pattern is important, otherwise it won't be the raw Elasticsearch format anyomre --\u003e\n                \u003c/encoder\u003e\n            \u003c/appender\u003e\n        \u003c/logger\u003e\n\n\n\nConfiguration Reference\n=======================\n\n * `url` (required): The URL to your Elasticsearch bulk API endpoint\n * `index` (required): Name if the index to publish to (populated using PatternLayout just like individual properties - see below)\n * `type` (optional): Elasticsearch `_type` field for records. Although this library does not require `type` to be populated, Elasticsearch may, unless the configured URL includes the type (i.e. `{index}/{type}/_bulk` as opposed to `/_bulk` and `/{index}/_bulk`). See the Elasticsearch [Bulk API](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html) documentation for more information\n * `sleepTime` (optional, default 250): Time (in ms) to sleep between attempts at delivering a message\n * `maxRetries` (optional, default 3): Number of times to attempt retrying a message on failure. Note that subsequent log messages reset the retry count to 0. This value is important if your program is about to exit (i.e. it is not producing any more log lines) but is unable to deliver some messages to ES\n * `connectTimeout` (optional, default 30000): Elasticsearch connect timeout (in ms)\n * `readTimeout` (optional, default 30000): Elasticsearch read timeout (in ms)\n * `includeCallerData` (optional, default false): If set to `true`, save the caller data (identical to the [AsyncAppender's includeCallerData](http://logback.qos.ch/manual/appenders.html#asyncIncludeCallerData))\n * `errorsToStderr` (optional, default false): If set to `true`, any errors in communicating with Elasticsearch will also be dumped to stderr (normally they are only reported to the internal Logback Status system, in order to prevent a feedback loop)\n * `logsToStderr` (optional, default false): If set to `true`, dump the raw Elasticsearch messages to stderr\n * `maxQueueSize` (optional, default 104,857,600 = 200MB): Maximum size (in characters) of the send buffer. After this point, *logs will be dropped*. This should only happen if Elasticsearch is down, but this is a self-protection mechanism to ensure that the logging system doesn't cause the main process to run out of memory. Note that this maximum is approximate; once the maximum is hit, no new logs will be accepted until it shrinks, but any logs already accepted to be processed will still be added to the buffer\n * `loggerName` (optional): If set, raw ES-formatted log data will be sent to this logger\n * `errorLoggerName` (optional): If set, any internal errors or problems will be logged to this logger\n * `rawJsonMessage` (optional, default false): If set to `true`, the log message is interpreted as pre-formatted raw JSON message.\n * `includeMdc` (optional, default false): If set to `true`, then all [MDC](http://www.slf4j.org/api/org/slf4j/MDC.html) values will be mapped to properties on the JSON payload.\n * `maxMessageSize` (optional, default -1): If set to a number greater than 0, truncate messages larger than this length, then append \"`..`\" to denote that the message was truncated\n * `authentication` (optional): Add the ability to send authentication headers (see below)\n\nThe fields `@timestamp` and `message` are always sent and can not currently be configured. Additional fields can be sent by adding `\u003cproperty\u003e` elements to the `\u003cproperties\u003e` set.\n\n * `name` (required): Key to be used in the log event\n * `value` (required): Text string to be sent. Internally, the value is populated using a Logback PatternLayout, so all [Conversion Words](http://logback.qos.ch/manual/layouts.html#conversionWord) can be used (in addition to the standard static variable interpolations like `${HOSTNAME}`).\n * `allowEmpty` (optional, default `false`): Normally, if the `value` results in a `null` or empty string, the field will not be sent. If `allowEmpty` is set to `true` then the field will be sent regardless\n * `type` (optional, default `String`): type of the field on the resulting JSON message. Possible values are: `String`, `int`, `float` and `boolean`.\n\nGroovy Configuration\n====================\n\nIf you configure logback using `logback.groovy`, this can be configured as follows:\n\n      import com.internetitem.logback.elasticsearch.ElasticsearchAppender\n\n      appender(\"ELASTIC\", ElasticsearchAppender){\n      \turl = 'http://yourserver/_bulk'\n      \tindex = 'logs-%date{yyyy-MM-dd}'\n      \ttype = 'log'\n      \trawJsonMessage = true\n      \terrorsToStderr = true\n      \tauthentication = new BasicAuthentication()\n      \tdef configHeaders = new HttpRequestHeaders()\n      \tconfigHeaders.addHeader(new HttpRequestHeader(name: 'Content-Type', value: 'text/plain'))\n      \theaders = configHeaders\n      }\n\n      root(INFO, [\"ELASTIC\"])\n\nAuthentication\n==============\n\nAuthentication is a pluggable mechanism. You must specify the authentication class on the XML element itself. The currently supported classes are:\n\n* `com.internetitem.logback.elasticsearch.config.BasicAuthentication` - Username and password are taken from the URL (i.e. `http://username:password@yourserver/_bulk`)\n* `com.internetitem.logback.elasticsearch.config.AWSAuthentication` - Authenticate using the AWS SDK, for use with the [Amazon Elasticsearch Service](https://aws.amazon.com/elasticsearch-service/) (note that you will also need to include `com.amazonaws:aws-java-sdk-core` as a dependency)\n\nLogback Access\n==============\n\nIncluded is also an Elasticsearch appender for Logback Access. The configuration is almost identical, with the following two differences:\n\n * The Appender class name is `com.internetitem.logback.elasticsearch.ElasticsearchAccessAppender`\n * The `value` for each `property` uses the [Logback Access conversion words](http://logback.qos.ch/manual/layouts.html#logback-access).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetitem%2Flogback-elasticsearch-appender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finternetitem%2Flogback-elasticsearch-appender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetitem%2Flogback-elasticsearch-appender/lists"}