将GC日志与Logback集成

我想将GC日志与我自己的基于http的Logger集成在一起,以避免基于文件的日志记录。 我关注了http://www.fasterj.com/articles/gcnotifs.shtml条文章。从JDk 7开始,我们可以在GC事件上添加我们自己的侦听器,它工作正常。但是我希望我的gc日志的打印方式与之前的记录相同。

像下面一样。


    2019-11-04T10:12:33.754+0000: 3.199: [GC pause (G1 Evacuation Pause) (young)
    Desired survivor size 50331648 bytes,new threshold 15 (max 15),0.0300627 secs]
       [Parallel Time: 18.2 ms,GC Workers: 8]
          [GC Worker Start (ms): Min: 3198.9,Avg: 3198.9,Max: 3199.0,Diff: 0.1]
          [Ext Root Scanning (ms): Min: 0.7,Avg: 2.7,Max: 11.7,Diff: 11.0,Sum: 21.3]
          [Update RS (ms): Min: 0.0,Avg: 0.0,Max: 0.0,Diff: 0.0,Sum: 0.0]
             [Processed Buffers: Min: 0,Max: 0,Diff: 0,Sum: 0]
          [Scan RS (ms): Min: 0.0,Sum: 0.0]
          [Code Root Scanning (ms): Min: 0.0,Avg: 0.6,Max: 2.6,Diff: 2.6,Sum: 4.5]
          [Object Copy (ms): Min: 0.8,Avg: 9.9,Max: 16.1,Diff: 15.3,Sum: 79.4]
          [Termination (ms): Min: 0.0,Avg: 4.8,Max: 5.6,Diff: 5.6,Sum: 38.6]
             [Termination Attempts: Min: 1,Avg: 1.0,Max: 1,Sum: 8]
          [GC Worker Other (ms): Min: 0.0,Sum: 0.1]
          [GC Worker Total (ms): Min: 17.9,Avg: 18.0,Max: 18.1,Diff: 0.1,Sum: 143.9]
          [GC Worker End (ms): Min: 3216.9,Avg: 3216.9,Max: 3217.0,Diff: 0.1]
       [Code Root Fixup: 0.9 ms]
       [Code Root Purge: 0.1 ms]
       [Clear CT: 0.2 ms]
       [Other: 10.8 ms]

所以我来自能够打印的通知:


    end of minor GC: - 1342 ParNew (from Allocation Failure) 26 milliseconds; start-end times 67212728-67212754
    end of minor GC: - 1343 ParNew (from Allocation Failure) 28 milliseconds; start-end times 68412633-68412661
    end of major GC: - 54 ConcurrentMarkSweep (from System.gc()) 147 milliseconds; start-end times 68563369-68563516
    end of minor GC: - 1344 ParNew (from Allocation Failure) 109 milliseconds; start-end times 70212722-70212831
    end of minor GC: - 1345 ParNew (from Allocation Failure) 39 milliseconds; start-end times 71413175-71413214
    end of minor GC: - 1346 ParNew (from Allocation Failure) 42 milliseconds; start-end times 72013977-72014019


    public void handleNotification(Notification notification,Object handback) {
          //get the information associated with this notification
          //get all the info and pretty print it
          GarbageCollectionNotificationInfo info = GarbageCollectionNotificationInfo.from((CompositeData) notification.getUserData());
          LOG.info(info.getGcaction() + ": - " + info.getGcInfo().getId()+ " " + info.getGcName() + " (from " + info.getGcCause()+") "+info.getGcInfo().getDuration() + " milliseconds; start-end times " + info.getGcInfo().getStartTime()+ "-" + info.getGcInfo().getEndTime());
        }

xcmk27 回答:将GC日志与Logback集成

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3167298.html

大家都在问