Console.log\info\debug\warn\error\table\count\dir\assert\time(End)\group(End/Collapsed)\trace\clear

Console对象详解

目录

一、Console 对象:用于 JavaScript 调试

二、Console对象静态方法:用来与控制台窗口互动

console.log():用于在控制台窗口输出信息。

console.info():是 console.log() 的别名,用于在控制台窗口输出信息。

console.debug():与 console.log() 类似,用于在控制台窗口输出信息。区别:默认情况下,console.debug 输出的信息不会显示,只有在打开Default levels在 Verbose 的情况下,才会显示。

console.warn():与 console.log() 类似,用于在控制台窗口输出信息。区别:warn方法输出信息时,在最前面加一个黄色三角,表示警告;同时高亮显示输出文字和错误发生的堆栈。

console.error():与 console.log() 类似,用于在控制台窗口输出信息。区别:error方法输出信息时,在最前面加一个红色的叉,表示出错;同时高亮显示输出文字和错误发生的堆栈。

console.table():将复合类型的数据转为表格显示。

console.count():用于计数,输出它被调用了多少次。

console.dir():用来对一个对象进行检查,并以易于阅读和打印的格式显示。

console.assert():主要用于程序运行过程中,进行条件判断,如果不满足条件,就显示一个错误,但不会中断程序执行。这样就相当于提示用户,内部状态不正确。注意:assert方法接受两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。

console.time()、console.timeEnd():两个方法表示计时,可以计算出一个操作花费的时间;第一个表示计时开始,第二个表示计时结束。

console.group()、console.groupEnd()、console.groupCollapsed():用于将显示的信息分组,可以把信息进行折叠和展开;结束内联分组;与console.group方法很类似,唯一的区别是该组的内容,在第一次显示时是收起的(collapsed),而不是展开的。

console.trace():追踪函数的调用过程。

console.clear():清除当前控制台的所有输出,将光标回置到第一行。

debugger语句:用于除错,作用是设置断点。Chrome 浏览器中,当代码运行到debugger语句时,就会暂停运行,自动打开脚本源码界面。

一、Console 对象:用于 JavaScript 调试
      JavaScript 原生中默认是没有 Console 对象,这是游览器提供的内置对象。 用于访问调试控制台, 在不同的浏览器里效果可能不同。

      Console 对象常见的两个用途:

显示网页代码运行时的错误信息;
提供了一个命令行接口,用来与网页代码互动。


二、Console对象静态方法:用来与控制台窗口互动

console.log():用于在控制台窗口输出信息。


       
       console.log支持以下格式占位符:%s (字符串)、%d (整数)、%i (整数)、%f (浮点数)、%o (对象的链接)、%c (CSS 格式字符串)

       

console.info():是 console.log() 的别名,用于在控制台窗口输出信息。


console.debug():与 console.log() 类似,用于在控制台窗口输出信息。


区别:默认情况下,console.debug 输出的信息不会显示,只有在打开Default levels在 Verbose 的情况下,才会显示。
      

console.warn():与 console.log() 类似,用于在控制台窗口输出信息。


区别:warn方法输出信息时,在最前面加一个黄色三角,表示警告;同时高亮显示输出文字和错误发生的堆栈。
      

console.error():与 console.log() 类似,用于在控制台窗口输出信息。


区别:error方法输出信息时,在最前面加一个红色的叉,表示出错;同时高亮显示输出文字和错误发生的堆栈。
      

console.table():将复合类型的数据转为表格显示。
      

console.count():用于计数,输出它被调用了多少次。
        

console.dir():用来对一个对象进行检查,并以易于阅读和打印的格式显示。
       

console.assert():主要用于程序运行过程中,进行条件判断,如果不满足条件,就显示一个错误,但不会中断程序执行。这样就相当于提示用户,内部状态不正确。注意:assert方法接受两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。
      

console.time()、console.timeEnd():两个方法表示计时,可以计算出一个操作花费的时间;第一个表示计时开始,第二个表示计时结束。
      

console.group()、console.groupEnd()、console.groupCollapsed():用于将显示的信息分组,可以把信息进行折叠和展开;结束内联分组;与console.group方法很类似,唯一的区别是该组的内容,在第一次显示时是收起的(collapsed),而不是展开的。
      

console.trace():追踪函数的调用过程。
      

console.clear():清除当前控制台的所有输出,将光标回置到第一行。
debugger语句:用于除错,作用是设置断点。
Chrome 浏览器中,当代码运行到debugger语句时,就会暂停运行,自动打开脚本源码界面。
      

       自动跳转到以下界面,弹出检查窗口进入debugger调试,按F10执行一条代码,并在代码后面显示数据值。

      

                        
原文链接:https://blog.youkuaiyun.com/m0_63021947/article/details/120951043

<think> 我们正在讨论ZooKeeper的日志配置项含义。用户提到的配置项如`zookeeper.root.logger=INFO, CONSOLE`和`zookeeper.console.threshold=INFO`等,通常出现在ZooKeeper的配置文件中,例如`log4j.properties`(旧版本)或`log4j2.xml`(新版本)中。由于ZooKeeper使用Apache Log4j作为日志框架,因此这些配置项与Log4j的配置相关。 下面我将逐一解析这些配置项的含义: 1. **`zookeeper.root.logger`**: - 这是ZooKeeper中设置根日志记录器(root logger)的配置项。 - 它的值由两部分组成:日志级别和输出目的地(Appender)。 - 例如:`zookeeper.root.logger=INFO, CONSOLE` - `INFO`:表示根日志记录器的日志级别为INFO,这意味着只有INFO级别及以上的日志(如WARNERROR)会被记录。 - `CONSOLE`:表示日志将输出到名为“CONSOLE”的Appender(通常指向控制台)。 2. **`zookeeper.console.threshold`**: - 这个配置项用于设置控制台Appender的日志级别阈值。 - 例如:`zookeeper.console.threshold=INFO` - 表示只有当日志级别达到INFO及以上时,才会输出到控制台。 - 注意:这个配置项只影响名为“CONSOLE”的Appender。 3. **其他相关配置项**: - **`log4j.rootLogger`**(在Log4j 1.x中)或**`rootLogger`**(在Log4j 2.x中): - 与`zookeeper.root.logger`作用相同,但`zookeeper.root.logger`是ZooKeeper自定义的配置项,在ZooKeeper启动脚本中会将其转换为Log4j的配置。 - **`zookeeper.log.dir`**和**`zookeeper.log.file`**: - 分别设置日志文件存储的目录和文件名。例如: ``` zookeeper.log.dir=./logs zookeeper.log.file=zookeeper.log ``` - **`zookeeper.log.threshold`**: - 设置所有Appender的默认日志级别阈值(如果某个Appender没有单独设置阈值,则使用此值)。 - **`zookeeper.tracelog.dir`和`zookeeper.tracelog.file`**: - 用于设置跟踪日志(trace log)的目录和文件名,跟踪日志通常用于调试。 4. **Appender的配置**: - 在Log4j配置中,Appender定义了日志输出的目的地(如控制台、文件等)。 - 例如,控制台Appender(CONSOLE)和文件Appender(ROLLINGFILE)的配置: ```properties # CONSOLE Appender log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold} log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n # ROLLINGFILE Appender log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLINGFILE.Threshold=INFO log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file} log4j.appender.ROLLINGFILE.MaxFileSize=10MB log4j.appender.ROLLINGFILE.MaxBackupIndex=10 log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n ``` - 这里,`CONSOLE`和`ROLLINGFILE`是两个Appender,分别输出到控制台和文件。 - `Threshold`设置了该Appender的日志级别阈值。 - `ConversionPattern`定义了日志的输出格式。 5. **日志级别**: - 日志级别从低到高包括:`ALL`, `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`, `OFF`。 - 设置某个级别后,只有该级别及更高级别的日志会被记录。 6. **配置示例**: 假设在`log4j.properties`中有如下配置: ```properties # 设置根日志记录器,输出到CONSOLE和ROLLINGFILE,日志级别为INFO log4j.rootLogger=${zookeeper.root.logger} # 定义CONSOLE Appender log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold} log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n # 定义ROLLINGFILE Appender log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLINGFILE.Threshold=INFO log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file} log4j.appender.ROLLINGFILE.MaxFileSize=10MB log4j.appender.ROLLINGFILE.MaxBackupIndex=10 log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n ``` 同时,在ZooKeeper的配置文件(如`zkEnv.sh`)中设置了: ```shell ZOO_LOG_DIR="/var/log/zookeeper" ZOO_LOG4J_PROP="INFO, CONSOLE, ROLLINGFILE" ``` 这里`ZOO_LOG4J_PROP`相当于`zookeeper.root.logger`,设置为`INFO, CONSOLE, ROLLINGFILE`,表示根日志记录器级别为INFO,并且同时输出到CONSOLE和ROLLINGFILE两个Appender。 总结: - `zookeeper.root.logger`:设置根日志记录器的日志级别以及使用的Appender列表。 - `zookeeper.console.threshold`:设置控制台Appender的日志级别阈值。 - 其他配置项如`zookeeper.log.dir`等用于指定日志文件路径和名称。 这些配置项帮助管理员灵活控制ZooKeeper的日志输出,便于监控和问题排查。 根据用户提供的引用内容,我们注意到引用[5]中提到了日志优化中的log4j配置[^5]。此外,引用[4]提到了在启动脚本中设置JVM参数来调整日志相关配置[^4]。 下面生成相关问题: </think> ### ZooKeeper日志配置项解析 ZooKeeper使用Log4j作为日志框架,其核心配置项主要位于`log4j.properties`文件中。以下是对关键配置项的详细解析: #### 1. **根日志记录器配置** ```properties zookeeper.root.logger=INFO, CONSOLE ``` - **作用**:设置全局日志级别和输出目标 - **参数解析**: - `INFO`:日志级别,表示只记录INFO及以上级别(WARNERROR)的日志 - `CONSOLE`:日志输出目标,指向名为"CONSOLE"的Appender(通常指控制台) - **效果**:所有未单独配置的日志都遵循此规则输出到控制台[^5] #### 2. **控制台日志阈值** ```properties zookeeper.console.threshold=INFO ``` - **作用**:单独控制控制台输出的日志级别 - **参数解析**: - `INFO`:控制台仅显示INFO及以上级别的日志 - 优先级高于`zookeeper.root.logger`中的级别设置 - **典型场景**:生产环境中可设为WARN,减少控制台冗余输出[^4] #### 3. **文件日志配置** ```properties log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file} log4j.appender.ROLLINGFILE.MaxFileSize=10MB log4j.appender.ROLLINGFILE.MaxBackupIndex=10 ``` - **作用**:配置滚动日志文件 - **核心参数**: - `${zookeeper.log.dir}`:日志目录(引用[1]提到的`/apache-zookeeper-3.8.4-bin/logs`) - `MaxFileSize=10MB`:单个日志文件最大尺寸 - `MaxBackupIndex=10`:保留的历史日志文件数量(引用[3]相关配置) #### 4. **日志级别详细控制** ```properties log4j.logger.org.apache.zookeeper.server=INFO log4j.logger.org.apache.zookeeper.server.NIOServerCnxn=WARN ``` - **作用**:按包/类细化日志级别 - **示例解析**: - 所有`server`包下的类使用INFO级别 - `NIOServerCnxn`网络连接类使用WARN级别(减少网络通信日志) - **最佳实践**:对性能敏感模块(如网络IO)设置更高日志级别[^4] #### 5. **日志格式配置** ```properties log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n ``` - **字段解析**: - `%d{ISO8601}`:ISO格式时间戳 - `%X{myid}`:服务器ID(集群中定位节点) - `%C{1}@%L`:类名和行号 - `%m%n`:日志消息+换行 - **价值**:包含服务器ID便于分布式日志追踪[^2] #### 6. **日志自动清理** ```properties autopurge.snapRetainCount=3 autopurge.purgeInterval=24 ``` - **作用**:自动清理旧日志和快照(引用[3]) - **参数**: - `snapRetainCount=3`:保留3个历史快照 - `purgeInterval=24`:每24小时清理一次 - **注意**:磁盘空间不足时需减小保留数量[^3] ### 配置生效原理 ZooKeeper通过`zkEnv.sh`加载配置: ```shell # 设置日志目录 ZOO_LOG_DIR="/var/log/zookeeper" # 传递日志配置给JVM export JVMFLAGS="-Dzookeeper.root.logger=INFO,ROLLINGFILE" ``` (参考引用[4]的JVM参数配置方式[^4])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值