我在几个地方看到[1]人们在生产服务器(任务关键)中启动GC日志记录,例如
java -server -Xms1024m -Xmx1024m -XX:NewSize=256m \
-XX:MaxNewSize=256m \
-XX:+UseConcMarkSweepGC \
-XX:CMSInitiatingOccupancyFraction=70
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-XX:+PrintTenuringDistribution \
-Xloggc:logs/gc.log \
-Djava.awt.headless=true
-Dcom.sun.management.jmxremote -classpath ...
这些天是否推荐生产环境中的做法?
更新 :我提供了来自Oracle的链接[2],还建议监视生产服务器上的GC。
是的 ,这是一种常见的做法。这 往往极力推荐 ,我给的例子和下面引用。
为什么GC日志记录适合生产Java服务器:
最小开销 -GC日志记录对整个系统性能的 开销最小 。
我正在开发一个微服务,它基于存储在自己数据存储中的某些配置进行一些计算。计算API通过REST API存储。该应用程序是一个Spring启动应用程序。现在该应用程序主要有3层: Rest控制器 我计划使用以下几点来处理日志记录和异常处理: > 如果在DAO层或服务层中有任何已检查的异常,则记录它们并抛出从RuntimeException派生的自定义异常。 有几个自定义异常,当我们遇到无效值、空值等
我知道有很多关于这个的问题,但是我确实经历了所有的问题,并且有点困惑自己,我列出了我遵循的步骤,请让我知道我把它搞砸了。 1) 我只想在应用程序级别使用Log4j,所以需要复制WL_HOME/server/lib/wllog4j。jar和log4j。jar在Domail_Home/Lib? 2) 我使用的是Maven,我在pom中添加了Log4j依赖项。xml[war]。我把战争藏在耳朵里。 3)
我刚刚为我们的微服务环境在前端创建了简单的Zuul代理,但现在我想将所有条目记录到通过代理的日志文件中。 做任何我需要做的事情。
我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?
当我在conf文件的虚拟主机部分中没有指定日志文件时,日志会写入httpd中指定的文件中。conf(=访问日志)。日志条目如下所示: SOMEIP--[22/Jan/2013:18:34:08 0100]“GET/HTTP/1.1”200 1752-“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.17(KHTML,比如Gecko)Chrome/S
我注意到在 Spark 中的规则探索器每次催化剂更改计划时都会执行跟踪日志: https://github . com/Apache/spark/blob/78801881 c 405 de 47 f 7 e 53 EEA 3 e 0420 DD 69593 DBD/SQL/catalyst/src/main/Scala/org/Apache/spark/SQL/catalyst/rules/ru