分布式服务框架 Zookeeper -- 日志配置

2024-08-27 11:58

本文主要是介绍分布式服务框架 Zookeeper -- 日志配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文:

1.http://www.voidcn.com/blog/xyang81/article/p-6258996.html

2.http://www.cnblogs.com/zhwbqd/p/3957018.html

Zookeeper在启动的时候,默认会在当前运行zkServer.sh命令的目录生成一个zookeeper.out日志文件,从日志中可以看到客户端的连接请求、发送的命令等信息,虽然从这个文件中也能查看日志,但不利于管理和维护。默认生成的日志文件如下图所示: 
zk默认日志文件

本文Zookeeper安装在/opt/zookeeper-3.4.9目录下,下面修改zk默认生成的日志文件和目录配置:

1、修改log4j.properties

log4j.properties日志配置文件在/opt/zookeeper-3.4.9/conf目录下

shell> cd /opt/zookeeper-3.4.9/conf
shell> vim log4j.properties
## 将以下配置:
zookeeper.root.logger=INFO, CONSOLE
log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
## 修改为:
zookeeper.root.logger=INFO, ROLLINGFILE
log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender

2、修改zkEnv.sh

zkEnv.sh日志配置文件在/opt/zookeeper-3.4.9/bin目录下

shell> cd /opt/zookeeper-3.4.9/bin
shell> vim zkEnv.sh
## 将以下配置:
if [ "x${ZOO_LOG_DIR}" = "x" ]
thenZOO_LOG_DIR="."
fiif [ "x${ZOO_LOG4J_PROP}" = "x" ]
thenZOO_LOG4J_PROP="INFO,CONSOLE"
fi
## 修改为:
if [ "x${ZOO_LOG_DIR}" = "x" ]
thenZOO_LOG_DIR="/var/log/zookeeper"
fiif [ "x${ZOO_LOG4J_PROP}" = "x" ]
thenZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi

修改ZOO_LOG_DIRZOO_LOG4J_PROP的值,启动服务后,zk会将日志文件保存到/var/log/zookeeper目录下,并且文件名为log4j.properties文件中配置的zookeeper.log,如下图所示: 
zk修改过后的日志目录

3. 美中不足的是在你设定的目录中, 仍会有zookeeper.out文件存在, 虽然它的size=0, 但是仍让我感到不爽.

究其原因是因为zkServer.sh会使用nohup进行zookeeper的启动, 然而nohup必然会输出一个日志文件到你设置的目录中,

相关代码如下, 需要将此处的逻辑修改掉, 就可以将zookeeper.out移除啦。

 

复制代码
_ZOO_DAEMON_OUT="$ZOO_LOG_DIR/zookeeper.out"case $1 in
start)echo  -n "Starting zookeeper ... "if [ -f "$ZOOPIDFILE" ]; thenif kill -0 `cat "$ZOOPIDFILE"` > /dev/null 2>&1; thenecho $command already running as process `cat "$ZOOPIDFILE"`.exit 0fifinohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
复制代码

 


这篇关于分布式服务框架 Zookeeper -- 日志配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111609

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.