linux怎么打印显示日志?我们一起来了解一下吧。
1、打开linux系统,在linux的桌面的空白处右击。
2、在弹出的下拉选项里,点击打开终端。
3、使用cat filename命令,并回车运行即可显示全部日志内容。
2022年2月7日——每日错题汇总-Linux
2月7日,祝大家开工大吉
今天做了10道Linux相关的试题,正确率还可以90%。不过遇到了一个不太会的题,就是选出对logcat 命令描述正确的是。
之前确实不知道logcat命令是啥,印象中Linux没有这个命令啊。
上网搜索学习了一下,原来logcat是Android中一个命令行工具,可以用于得到程序的log信息。
logcat是什么?Logcat 是一个命令行工具,用于转储系统消息日志,其中包括设备引发错误时的堆叠追踪,以及从您的应用使用 Log类编写的消息。
格式:[adb] logcat [<option>] ... [<filter‐spec>] ...
日志记录系统概览Android 日志记录系统是系统进程 logd 维护的一组结构化环形缓冲区。这组可用的缓冲区是固定的,并由系统定义。
相关的缓冲区为:
每个日志条目都包含一个优先级(VERBOSE、DEBUG、INFO、WARNING、ERROR 或 FATAL)、一个标识日志来源的标记以及实际的日志消息。
日志记录系统的主接口是共享库 liblog 及其头文件 <android/log.h>。所有语言特定的日志记录工具最终都会调用函数 __android_log_write。默认情况下,它会调用函数 __android_log_logd_logger,该函数使用套接字将日志条目发送到 logd。从 API 级别 30 开始,可以通过调用 __android_set_log_writer 更改日志记录函数。
运行 adb logcat 显示的日志要经过四个级别的过滤:
编译时过滤:根据编译设置,某些日志可能会从二进制文件中完全移除。
例如,可以将 ProGuard 配置为从 Java 代码中移除对 Log.d 的调用。
系统属性过滤:liblog 会查询一组系统属性以确定要发送到 logd 的最低严重级别。如果日志具有 MyApp 标记,系统会检查以下属性,并且日志应包含最低严重级别的第一个字母(V、D、I、W、E 或 S 来停用所有日志):
应用过滤:如果未设置任何属性,liblog 会使用 __android_log_set_minimum_priority 设置的最低优先级。默认设置为 INFO。
显示过滤:adb logcat 支持其他可减少 logd 显示的日志数量的过滤条件。
logcat 命令参数:-b <buffer> 加载可供查看的备用日志缓冲区,比如event和radio。默认值是main缓存区
-c 清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区)
-d 将缓冲区的log转存到屏幕中然后退出
-f <filename> 将log输出到指定的文件中<文件名>.默认为标准输出(stdout)
-g 打印指定日志缓冲区的大小并退出。
-n <count> 设置日志的最大数目<count>,默认值是4,需要和-r选项一起使用
-r <kbytes> 每输出<kbytes>日志文件,默认值是16,需要和-f选项一起使用
-s 设置默认的过滤级别为silent.( -s robin:I )
-v <format> 设置日志消息的输出格式。默认值为 brief 格式有关支持的格式列表
logcat缓冲区:adb logcat -b <buffer>
main 查看主要日志缓冲区(默认值)
events 查看包含事件相关消息的缓冲区
radio 查看包含无线装置/电话相关消息的缓冲区
system 查看系统组件的log
logcat日志输出格式:adb logcat -v <format>
brief 显示优先级/标记以及发出消息的进程的 PID(默认格式)
brief 显示优先级/标记,以及发出消息的进程的 PID(默认格式)
process 只显示 PID
tag 显示优先级/标记
raw 显示原始的日志消息,没有其他元数据字段
time 显示日期、调用时间、优先级/标记以及发出消息的进程的 PID
threadtime 显示日期、调用时间、优先级、标记以及发出消息的线程的 PID 和 TID
long 显示所有元数据字段,并使用空白行分隔消息
logcat过滤日志输出:[<filter‐spec>] 格式:tag:priority
V (verbose)— 详细(最低优先级) D (debug)— 调试
I (info)— 信息 W (warning)— 警告
E (error)— 错误 F (fatal)— 致命
S (silent)— 静默(最高优先级,不会打印任何内容)
例: adb logcat ActivityManager:I MyApp:D *:S
最后一个元素 *:S 将所有标记的优先级设为“静默”,从而确保系统仅显示带有“ActivityManager”和“MyApp”标记的日志消息。
使用 *:S 可有效地确保日志输出受限于您已明确指定的过滤器 —它允许过滤器充当日志输出的“白名单”。