java查看日志常用的命令(查看日志用什么命令)

今天给各位分享java查看日志常用的命令的知识,其中也会对查看日志用什么命令进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

gc日志如何查看哪些

要查看GC日志首先要知道GC的log放在哪里,使用jps命令查看当前有哪些java进程在运行,找到我们要查看的java程序的进程pid

使用命令jinfo pid 来查看这个进程对应的java 信息,可以看到大概在最下面的地方有个参数-Xloggc:,他对应的就是gc log的位置。

用gcviewer 打开gc log可以很直观的查看gc log:

第一个标签页就是Chart,这也是最可以直观看出有没有问题的地方,如上图所示,这个日志反应了gc一直在不停的做新生带的回收,并且老年代的使用率一直在增加。图中整个高度为JVM总的内存大小,也就是989.9M,从右侧的Summary也可以看出。其中的紫色部分为老年代的大小,黄色部分是新生带的大小。不同颜色的线和图块的含义可以从菜单看出,如下图:

第二个tab是Event Dtails,可以看出各种GC的次数和时间间隔,以及效果:

日志的查看

1.首先需要堡垒机的地址,可能涉及权限,找相应的开发开一个权限,堡垒机上会有web终端的入口,或者终端里面命令  ssh lizhenzhen@jumpserver.baijiahulian.com

2.找到对应的模块,进入到模块里面查看日志

eg:student的日志可以进入下面模块查看

日志的查询模式:

1.按照时间节点查询

2.不按照日期,直接进到业务日志下面找

3.关键字过滤

4.动态实时查询日志

tail -f stdout.log 退出 ctrl+C

日志常用的命令:

tail -f stdout.log

tail -f stdout.log | grep 'demo'

grep 'demo' stdout.log

grep 'demo' stdout.log -A 10 前 10 行

grep 'demo' stdou.log -B 10 后 10 行

grep 'demo' stdout.log -C 10 前后 10 行

grep 'fb51b67c01de0392b0d50f3bfe1 29df0' info-2020-06.log

grep正则

告警标记有机器、logID

mq 日志(公司内用的是rocketmq,先知道mq消费事件,在查messagevent)

grep '发送消息' stdout.log,查询到 messageId

grep 'messageId' stdout.log,到消费者机器查询消费信息

某个接口404怎么办

        常见原因:1)可能是Java服务没启动  2)url请求错误(全链路适用)

        调试方法:找到对应的模块,看下tomcat是否启动,未启动先启动服务

                          ps -ef|grep tomcat可查看状态;查出对应的pid

                          可以对进程进行强制杀死等操作【kill -1365 pid】

日志查询常用命令

输出匹配结果到文件

grep keyword (or ) filename

""表示覆盖, ""表示追加

去除重复,注意uniq只能去除连续的重复行,因此需要先排序,之后再用uniq去重

grep 'keyword' filename | sort | uniq

查看文件时加上-Oec参数,解决中文显示乱码

lv -Oec filename

截取文件指定列 指定分隔符为空格

cut -d ' ' -f 3-5 获取第3-5个域的内容

提取包含关键字的行,截取指定列,排序,去重

grep 'keyword' filename | cut -d ' ' -f 3-5 | sort | uniq

关键词计数

cat file_name | grep keyword | wc -l

grep keyword file_name | wc -l

高亮显示搜索结果

grep --color 'key word' filename

查找日志文件中所有包含exception,fail,error关键字的词组并分组计数

egrep -o '[a-zA-Z]+ (exception|fail|error)' filename | sort | uniq -c

如何查看log日志文件

 查看方法:

一、在 Java 与 C 语言中输出日志:

1) Java 代码在程序中输出日志, 使用 android.util.Log 类的以下 5 个方法:

Log.v()、Log.d()、Log.i()、Log.w()、Log.e()。

分对应 Verbose、Debug、INFO、Warn、Error 的首字母。

例如:Log.i( "类::函数名", "日期_时间_源码文件名_行号_日志信息内容" );

2) C 代码在程序中输出日志,使用 log 的 API 函数:

__android_log_write( 日志类型宏,日志标签字符串,日志令牌内容字符串 );

需要:1. Android.mk 中添加 LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

 2. *.c 中添加 #include android/log.h

 3. 日志类型宏有:

复制代码 代码如下:

// Android log priority values, in ascending priority order.

typedef enum android_LogPriority {

ANDROID_LOG_UNKNOWN = 0,

// only for SetMinPriority()

ANDROID_LOG_DEFAULT,

ANDROID_LOG_VERBOSE,

ANDROID_LOG_DEBUG,

ANDROID_LOG_INFO,

ANDROID_LOG_WARN,

ANDROID_LOG_ERROR,

ANDROID_LOG_FATAL,

// only for SetMinPriority(); must be last

ANDROID_LOG_SILENT,

} android_LogPriority;

二、logcat 使用方法:

Usage: logcat [options] [filterspecs]

用法: logcat [选项] [过滤说明]

options include:

选项包含:

-s Set default filter to silent.

Like specifying filterspec '*:S'

设置默认过滤为无声的。

像指定过滤说明为 *:S ,见下面 过滤说明 部份详述

-f filename Log to file.

Default to stdout

输出日志到文件。

默认为 stdout

-r [kbytes] Rotate log every kbytes.

(16 if unspecified).

Requires -f

设置环形日志缓冲区的kbytes。

默认值为16。

需要和 -f 选项一起使用

-n count Sets max number of rotated logs to count, default 4

设置环形日志缓冲区的最大数目,默认值是4,需要和 -r 选项一起使用

-v format Sets the log print format, where format is one of:

设置 log 的打印格式, 格式有如下主要7种:(不能组合使用)

brief

process

tag

thread

raw

time

threadtime

long

-c clear (flush) the entire log and exit

清除所有 log 并退出

-d dump the log and then exit (don't block)

得到所有log并退出且不阻塞

-t count print only the most recent count lines (implies -d)

仅打印最近的由参数 count 指出的行数(必然包含 -d)

-g get the size of the log's ring buffer and exit

得到环形缓冲区的大小并退出

-b buffer Request alternate ring buffer, 'main', 'system', 'radio' or 'events'.

Multiple -b parameters are allowed and the results are interleaved.

The default is -b main -b system.

请求供替换的环形缓冲区,如:main,system,radio,events。

多个 -b 参数是被允许,并且结果是交错输出的。

-b main -b system 是默认的。

-B output the log in binary

输出 log 到二进制文件中。

filterspecs are a series of tag[:priority]

过滤说明是一系列 tag[:priority]

where tag is a log component tag (or * for all) and priority is:

tag 是 eclipse 中 logcat 图形界面中 Tag 的内容(或者有 * 表示全部),它之后的冒号(:)后面跟优先级:

日志类型标识符(优先级由低到高排列):

1. V — Verbose 详细的 - 最低优先权

2. D — Debug 调试

3. I — Info 消息

4. W — Warn 警告

5. E — Error 错误

6. F — Fatal 致命的

7. S — Silent 无声的 - 最高优先权

'*' means '*:d' and tag by itself means tag:v

* 意味着 *:d 且 单孤地 tag 意味着 tag:V

If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.

如果在命令行上没有详细说明,过滤规格即是 ANDROID_LOG_TAGS 结果集。

If no filterspec is found, filter defaults to '*:I'

如果没有过滤说明,过滤规格默认为 *:I

If not specified with -v, format is set from ANDROID_PRINTF_LOG or defaults to "brief"

如果没有 -v 指定格式,将是 ANDROID_PRINTF_LOG 或 brief 格式集。

1) 只输出指定 标签 和 类型 的日志

格式:

adb logcat 日志标签:日志类型标识符 日志标签:日志类型标识符 ... *:S

注:1. 可以写多个 日志标签:日志类型标识符 之间用空格分隔;

2. 最后必须是 *:S ,表示其它的都不要显示出来

例如:

$ adb logcat dalvikvm:D Checkin:W *:S

注:adb logcat Checkin *:S =等同于= adb logcat Checkin:V *:S

注:以上命令均没加 -v 来指出日志格式,即默认为: ANDROID_PRINTF_LOG 或 brief 格式集。

2) 输出指定 标签 和 类型 的带有格式的日志

注:以下测试日志内容为:test log format,

即 eclipse 中的 logcat 图形界面里的 Text 中的内容!

1. brief - 日志类型/日志标签(进程ID): 日志内容

例如:$ adb logcat -v brief Checkin *:S

 I/Checkin(24713): test log format

 

2. process - 日志类型(进程ID) 日志内容 (日志标签)

例如:$ adb logcat -v process Checkin *:S

 I(24713) test log format (Checkin)

 

3. tag - 日志类型/日志标签: 日志内容

例如:$ adb logcat -v tag Checkin *:S

I/Checkin: test log format

4. thread - 日志类型(进程ID:线程ID)

例如:$ adb logcat -v thread Checkin *:S

I(24713:0x6089) test log format

5. raw - 日志内容

例如:$ adb logcat -v raw Checkin *:S

test log format

6. time - 日期 调用时间 日志类型/日志标签(进程ID): 日志内容

例如:$ adb logcat -v time Checkin *:S

05-27 11:25:33.854 I/Checkin(24713): test log format

7. threadtime - 日期 调用时间 进程ID 线程ID 日志类型 日志标签: 日志内容

例如:$ adb logcat -v time Checkin *:S

05-27 11:25:33.854 24713 24713 I Checkin: test log format

注:只有此种格式时 线程ID 为十进制数。

8. long - [ 日期 调用时间 进程ID:线程ID 日志类型/日志标签 ] 转行显示 日志内容

例如:$ adb logcat -v long Checkin *:S

[ 05-27 11:25:33.854 24713:0x6089 I/Checkin ]

test log format

java指定日志配置路径命令

单独的Java程序包, 需要通过命令java -jar或java -cp的方式启动;

我们可以在启动命令中加入系统运行时变量, 在log4j加载配置文件之前通过System.getProperties(“path”)读取此变量, 即可实现灵活加载当前路径.

(1) 启动脚本设置:

假设当前项目的目录结构为:

/Projects/KafkaConsumer

丨 bin 项目的启动脚本

丨 conf 项目的配置文件

丨 lib 项目的其他依赖包

丨 bogs 项目的日志输出路径

启动脚本位于bin目录下, 内容示例如下:

# 获取当前脚本所处的目录, 然后进入其上级目录, 最后pwd输出该目录, 最终的结果是/Project/KafkaConsumerbase_dir=$(cd `dirname $0`; cd ..; pwd)# 获取Java运行程序的位置, 并指定主类java_bin=$(which java)main_class=”org.shoufeng.elastic.ConsumerMain”# 通过-cp、扩展CLASSPATH、指定主类的方式启动项目, # 并通过“-D”的方式向此程序的运行时环境中设置当前项目的路径,# 即可在程序中通过System.getProperty(“base.dir”)获取此路径 nohup ${java_bin} -Dbase.dir=${base_dir} -cp ${CLASSPATH}:${base_dir}/conf:${base_dir}/lib/* ${main_class} /dev/null

(2) Java程序读取变量:

实log4j的FileAppender本身支持动态设置文件路径, 如:

log4j.appender.logfile.File=${base.log}/logs/app.log

其中“${base.log}”是一个变量, 会被System Property中的base.log的值代替, 代码中的使用方式为:

public static void main(String[] args) { // 获取系统运行时变量中的日志文件的输出路径 // 此变量需要在启动命令中通过-D的方式设置 String baseDir = System.getProperty(“b

如何查看服务器日志

你好,查看服务器日志以Linux举例的话可通过以下方式查看:

1.进入日志文件所在的文件目录,比如:cd /opt/tomcat7/logs

2.通过命令打开日志,分析需求场景打开需要的日志。比如:tail -f catalina.out

3.常用命令一:tail比如:tail -f test.log (循环查看文件内容)

4.按照行号查询:cat(过滤出关键字附近的日志)cat -n test.log |grep "订单号" 然后使用 head -n 20 查看查询结果里的向前20条记录。

5.按照时间日期查询,(查询出一段时间内的记录)sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log

java查看日志常用的命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于查看日志用什么命令、java查看日志常用的命令的信息别忘了在本站进行查找喔。

1、本网站名称:源码村资源网
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » java查看日志常用的命令(查看日志用什么命令)
您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论