多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 日志配置 Elasticsearch使用[Log4j2](https://logging.apache.org/log4j/2.x/)进行日志记录。 Log4j2可以通过log4j2.properties文件进行配置。Elasticsearch公开了三个属性:`${sys:es.logs.base_path}`、`${sys:es.logs.cluster_name}`、`${sys:es.logs.node_name}`(如果节点名字通过`node.name`明确配置过),这三个属性可以在配置文件中引用,以确定日志文件的存放路径; `${sys:es.logs.base_path}`被解析为日志目录,`${sys:es.logs.cluster_name}`被解析为集群名称(默认用作日志文件名的前缀),`${sys:es.logs.node_name}`被解析为节点名字(如果节点名字明确配置过)。 例如,如果您的日志目录(`path.logs`)是`/var/log/elasticsearch`,并且您的集群名为`production`,那么`${sys:es.logs}`将解析为`/var/log/elasticsearch/production`,`${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log`将被解析为`/var/log/elasticsearch/production.log`。 ``` appender.rolling.type = RollingFile appender.rolling.name = rolling appender.rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log appender.rolling.layout.type = PatternLayout appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%.-10000m%n appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.log.gz appender.rolling.policies.type = Policies appender.rolling.policies.time.type = TimeBasedTriggeringPolicy appender.rolling.policies.time.interval = 1 appender.rolling.policies.time.modulate = true appender.rolling.policies.size.type = SizeBasedTriggeringPolicy appender.rolling.policies.size.size = 256MB appender.rolling.strategy.type = DefaultRolloverStrategy appender.rolling.strategy.fileIndex = nomax appender.rolling.strategy.action.type = Delete appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path} appender.rolling.strategy.action.condition.type = IfFileName appender.rolling.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-* appender.rolling.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize appender.rolling.strategy.action.condition.nested_condition.exceeds = 2GB ``` // TODO 如果将`.gz`或`.zip`附加到`appender.rolling.filePattern`,那么日志将在滚动时压缩。 如果你想保留指定时间段的日志,可以使用一个带有删除动作的滚动策略。 ``` appender.rolling.strategy.type = DefaultRolloverStrategy #① appender.rolling.strategy.action.type = Delete #② appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path} #③ appender.rolling.strategy.action.condition.type = IfLastModified #④ appender.rolling.strategy.action.condition.age = 7D #⑤ appender.rolling.strategy.action.PathConditions.type = IfFileName #⑥ appender.rolling.strategy.action.PathConditions.glob = ${sys:es.logs.cluster_name}-* #⑦ ``` ① 配置滚定处理器DefaultRolloverStrategy - - - - - - ② 为滚动滚定处理器配置删除动作 - - - - - - ③ 日志文件目录 - - - - - - ④ 指定滚定的条件 - - - - - - ⑤ 保留日志的时间 - - - - - - ⑥ 根据文件名匹配,仅删除超过7天的文件 - - - - - - ⑦ 根据`${sys:es.logs.cluster_name}-*`格式去匹配删除文件; 它仅仅只删除Elasticsearch的日志,不会删除`deprecation`与`slow`的日志。 可以加载多个配置文件(在这种情况下,它们将被合并),只要它们命名为`log4j2.properties`并将Elasticsearch config目录作为父目录; 这对于暴露其他日志记录器的插件很有用。 日志部分包含java包及其对应的日志级别。 记录器部分包含日志的目标。 有关如何自定义日志记录和所有支持的追加器的详细信息可以在[Log4j文档](http://logging.apache.org/log4j/2.x/manual/configuration.html)中找到。 ## Configuring logging levels // TODO ## Deprecation(过期)日志 除了常规日志记录之外,Elasticsearch还允许您启用日志来记录一些过期的操作。 例如,这允许您在早期就确定您将需要在未来迁移哪些功能。 默认情况下,过期日志会开启并以WRAN级别记录,此级别会记录所有过期操作的日志。 ``` logger.deprecation.level = warn ``` 它将在日志目录中创建每日滚动的deprecation日志文件。 定期检查此文件,特别是当您打算升级到新的主版本。 默认的日志配置已为弃用日志设置了滚动策略,将在1GB之后滚动和压缩,并且最多保留五个日志文件(四个已滚动的日志和一个正在记录的日志)。 您可以通过在`config/log4j2.properties`文件中设置deprecation日志级别设置为`error`来禁用它。 > my note > > 日志配置