progressmessagelogformatter.java
来自「这是一个matlab的java实现。里面有许多内容。请大家慢慢捉摸。」· Java 代码 · 共 49 行
JAVA
49 行
package edu.umass.cs.mallet.base.util;import java.util.logging.*;import java.util.Arrays;/** * Format ProgressMessages destined for screen. * Progress messages are repetitive messages, of which only * the last one is generally of interest. * Progress messages are a subclass of LogRecord, generated * by a progressMessageLogger. * When printing a progress message, we carriage return but * supress the line-feed. * If we get a message that is not a progressMessage, print * it the same way PlainLogFormatter does. * todo: capture the formatter that was on the console * (usually a plainlogformatter) and defer to it when * needed. */public class ProgressMessageLogFormatter extends SimpleFormatter{ boolean lastMessageWasProgressMessage=false; int lastProgressMessageLength=0; public ProgressMessageLogFormatter() { super(); } public String format (LogRecord record) { int length = record.getMessage().length(); if (record instanceof ProgressMessageLogRecord){ String suffix = ""; if (lastMessageWasProgressMessage && lastProgressMessageLength>length){ // pad with trailing blanks if previous message was shorter than ours. int padding = lastProgressMessageLength-length; char []c = new char[padding]; Arrays.fill(c, ' '); suffix = new String(c); } lastMessageWasProgressMessage = true; lastProgressMessageLength = length; return record.getMessage() + suffix + "\r"; }else{ String prefix = lastMessageWasProgressMessage? "\n" : ""; lastMessageWasProgressMessage = false; return prefix + record.getMessage()+ "\n"; } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?