From b18f35034702e8683b494935c45e1cfeb3741bfa Mon Sep 17 00:00:00 2001 From: richie Date: Wed, 18 Jul 2018 15:11:32 +0800 Subject: [PATCH] =?UTF-8?q?CORE-116=20=E5=88=A0=E9=99=A4LogRecordTime?= =?UTF-8?q?=E7=AD=89=E6=97=A0=E7=94=A8=E7=9A=84=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../loghandler/DesignerLogAppender.java | 1 - .../loghandler/DesignerLogHandler.java | 84 +++++++++---------- .../mainframe/loghandler/DesignerLogImpl.java | 46 ---------- .../mainframe/socketio/DesignerSocketIO.java | 23 +++-- .../fr/start/module/DesignerActivator.java | 5 +- 5 files changed, 50 insertions(+), 109 deletions(-) delete mode 100644 designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogImpl.java diff --git a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogAppender.java b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogAppender.java index 65cbe2b217..118ea2e321 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogAppender.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogAppender.java @@ -1,7 +1,6 @@ package com.fr.design.mainframe.loghandler; -import com.fr.general.FRLogLevel; import com.fr.third.apache.log4j.AppenderSkeleton; import com.fr.third.apache.log4j.Level; import com.fr.third.apache.log4j.spi.LoggingEvent; diff --git a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogHandler.java b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogHandler.java index d2e149e91c..c724f38538 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogHandler.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogHandler.java @@ -1,17 +1,16 @@ package com.fr.design.mainframe.loghandler; import com.fr.base.BaseUtils; -import com.fr.base.FRContext; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.imenu.UIMenuItem; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.general.ComparatorUtils; -import com.fr.general.FRLogLevel; import com.fr.general.Inter; -import com.fr.general.LogRecordTime; import com.fr.general.log.Log4jConfig; -import com.fr.stable.xml.LogRecordTimeProvider; +import com.fr.log.FineLoggerFactory; import com.fr.third.apache.log4j.Level; +import com.fr.third.apache.log4j.spi.LoggingEvent; +import com.fr.third.apache.log4j.spi.ThrowableInformation; import javax.swing.*; import javax.swing.text.BadLocationException; @@ -29,11 +28,13 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.logging.LogRecord; import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; public class DesignerLogHandler { + + private static final SimpleDateFormat LOG_SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + protected static final int INFO_INT = Level.INFO.toInt(); protected static final int ERROR_INT = Level.ERROR.toInt(); protected static final int WARN_INT = Level.WARN.toInt(); @@ -67,7 +68,6 @@ public class DesignerLogHandler { public void actionPerformed(ActionEvent e) { logHandlerArea.jTextArea.setText(""); caption.clearMessage(); - DesignerLogImpl.getInstance().clear(); } }); caption.addSelectedListener(new ActionListener() { @@ -84,10 +84,6 @@ public class DesignerLogHandler { public void itemStateChanged(ItemEvent e) { logHandlerArea.jTextArea.setText(""); caption.clearMessage(); - LogRecordTimeProvider[] recorders = DesignerLogImpl.getInstance().getRecorders(); - for (LogRecordTimeProvider logRecordTime : recorders) { - logHandlerArea.printStackTrace(logRecordTime); - } } }; showInfo = new JCheckBoxMenuItem(Inter.getLocText(new String[]{"Display", "Normal", "Info"}), true); @@ -101,7 +97,7 @@ public class DesignerLogHandler { @Override public void actionPerformed(ActionEvent e) { JPopupMenu jPopupMenu = new JPopupMenu(); - + int logLevelInt = Log4jConfig.getInstance().getRootLevel().toInt(); if (logLevelInt <= INFO_INT) { jPopupMenu.add(showInfo); @@ -193,55 +189,52 @@ public class DesignerLogHandler { public void actionPerformed(ActionEvent evt) { resultPane.setText(""); caption.clearMessage(); - DesignerLogImpl.getInstance().clear(); } }); return resultPane; } - public void printStackTrace(LogRecordTimeProvider logRecordTime) { - LogRecord logRecord = logRecordTime.getLogRecord(); - Date date = logRecordTime.getDate(); - int logLevelvalue = logRecord.getLevel().intValue(); - if (logLevelvalue == INFO_INT && showInfo.isSelected()) { - printMessage(logRecord.getMessage(), logLevelvalue, date, logRecord.getThrown()); - } else if (logLevelvalue == ERROR_INT && showError.isSelected()) { - printMessage(logRecord.getMessage(), logLevelvalue, date, logRecord.getThrown()); - } else if (logLevelvalue == WARN_INT && showServer.isSelected()) { - printMessage(logRecord.getMessage(), logLevelvalue, date, logRecord.getThrown()); + public void printStackTrace(LoggingEvent event) { + int intLevel = event.getLevel().toInt(); + Date date = new Date(event.getTimeStamp()); + ThrowableInformation information = event.getThrowableInformation(); + if (intLevel == INFO_INT && showInfo.isSelected()) { + printMessage(event.getRenderedMessage(), intLevel, date, information == null ? null : information.getThrowable()); + } else if (intLevel == ERROR_INT && showError.isSelected()) { + printMessage(event.getRenderedMessage(), intLevel, date, information == null ? null : information.getThrowable()); + } else if (intLevel == WARN_INT && showServer.isSelected()) { + printMessage(event.getRenderedMessage(), intLevel, date, information == null ? null : information.getThrowable()); } - } public void printStackTrace(String message, Level level, Date date) { - int logLevelvalue = level.toInt(); - if (logLevelvalue == INFO_INT && showInfo.isSelected()) { - printMessage(message, logLevelvalue, date); - } else if (logLevelvalue == ERROR_INT && showError.isSelected()) { - printMessage(message, logLevelvalue, date); - } else if (logLevelvalue == WARN_INT && showServer.isSelected()) { - printMessage(message, logLevelvalue, date); + int intLevel = level.toInt(); + if (intLevel == INFO_INT && showInfo.isSelected()) { + printMessage(message, intLevel, date); + } else if (intLevel == ERROR_INT && showError.isSelected()) { + printMessage(message, intLevel, date); + } else if (intLevel == WARN_INT && showServer.isSelected()) { + printMessage(message, intLevel, date); } } - private void printMessage(String message, int logLevelvalue, Date date) { - printMessage(message, logLevelvalue, date, null); + private void printMessage(String message, int intLevel, Date date) { + printMessage(message, intLevel, date, null); } - private void printMessage(String messange, int logLevelvalue, Date date, Throwable e) { - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - this.log(simpleDateFormat.format(date) + "\n", 0); - String message = swithInter(messange, logLevelvalue); - this.log(message, logLevelvalue); - setMessage(message, logLevelvalue); + private void printMessage(String msg, int intLevel, Date date, Throwable e) { + this.log(LOG_SIMPLE_DATE_FORMAT.format(date) + "\n", 0); + String message = appendLocaleMark(msg, intLevel); + this.log(message, intLevel); + setMessage(message, intLevel); if (e == null) { return; } - StackTraceElement[] stacktraceelement = e.getStackTrace(); - for (int i = 0; i < stacktraceelement.length; i++) { - this.log("\t" + "at " + stacktraceelement[i].toString() + "\n", 0); + StackTraceElement[] traceElements = e.getStackTrace(); + for (int i = 0; i < traceElements.length; i++) { + this.log("\t" + "at " + traceElements[i].toString() + "\n", 0); } } @@ -264,11 +257,11 @@ public class DesignerLogHandler { try { doc.insertString(doc.getLength(), str, attrSet); } catch (BadLocationException e) { - FRContext.getLogger().error(e.getMessage()); + FineLoggerFactory.getLogger().error(e.getMessage()); } } - private String swithInter(String str, int style) { + private String appendLocaleMark(String str, int style) { if (style == ERROR_INT) { str = Inter.getLocText("FR-Designer_Alert") + ":" + str + "\n"; } else if (style == WARN_INT) { @@ -318,14 +311,13 @@ public class DesignerLogHandler { } else if (ComparatorUtils.equals(evt.getActionCommand(), LogHandlerArea.this.clear.getText())) { LogHandlerArea.this.jTextArea.setText(""); caption.clearMessage(); - DesignerLogImpl.getInstance().clear(); } } }; } - public void printRemoteLog(LogRecordTime logRecordTime) { - logHandlerArea.printStackTrace(logRecordTime); + public void printLoggingEvent(LoggingEvent event) { + logHandlerArea.printStackTrace(event); } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogImpl.java b/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogImpl.java deleted file mode 100644 index 71009a2966..0000000000 --- a/designer-base/src/main/java/com/fr/design/mainframe/loghandler/DesignerLogImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.fr.design.mainframe.loghandler; - -import com.fr.stable.fun.impl.AbstractLogProvider; -import com.fr.stable.xml.LogRecordTimeProvider; - -import java.util.ArrayList; -import java.util.List; - -/** - * Created by Administrator on 2016/1/11 0011. - */ -public class DesignerLogImpl extends AbstractLogProvider{ - - private static DesignerLogImpl instance = new DesignerLogImpl(); - - public static DesignerLogImpl getInstance(){ - return instance; - } - - private DesignerLogImpl(){ - - } - - private List records = new ArrayList(); - - /** - * 清除内存中的日志记录 - */ - public void clear(){ - records.clear(); - } - - /** - * 获取所有日志信息 - * - * @return 日志信息 - */ - public LogRecordTimeProvider[] getRecorders(){ - return records.toArray(new LogRecordTimeProvider[records.size()]); - } - - @Override - public void record(LogRecordTimeProvider logRecordTime) { - records.add(logRecordTime); - } -} \ No newline at end of file diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java index 60631eded2..772445695a 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java @@ -4,24 +4,23 @@ import com.fr.config.RemoteConfigEvent; import com.fr.decision.webservice.utils.DecisionServiceConstants; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.loghandler.DesignerLogHandler; -import com.fr.workspace.server.socket.SocketInfoOperator; import com.fr.event.EventDispatcher; import com.fr.general.Inter; -import com.fr.general.LogRecordTime; -import com.fr.general.LogUtils; import com.fr.log.FineLoggerFactory; +import com.fr.serialization.SerializerHelper; +import com.fr.stable.ArrayUtils; +import com.fr.third.apache.log4j.spi.LoggingEvent; import com.fr.third.guava.base.Optional; import com.fr.workspace.WorkContext; import com.fr.workspace.Workspace; import com.fr.workspace.base.WorkspaceConstants; import com.fr.workspace.engine.server.rpc.netty.RemoteCallClient; +import com.fr.workspace.server.socket.SocketInfoOperator; import io.socket.client.IO; import io.socket.client.Socket; import io.socket.emitter.Emitter; -import javax.swing.JOptionPane; -import javax.swing.UIManager; -import java.io.ByteArrayInputStream; +import javax.swing.*; import java.io.IOException; import java.net.URI; import java.net.URL; @@ -33,13 +32,13 @@ public class DesignerSocketIO { private static final Emitter.Listener printLog = new Emitter.Listener() { @Override public void call(Object... objects) { - try { - LogRecordTime[] logRecordTimes = LogUtils.readXMLLogRecords(new ByteArrayInputStream((byte[]) objects[0])); - for (LogRecordTime logRecordTime : logRecordTimes) { - DesignerLogHandler.getInstance().printRemoteLog(logRecordTime); + if (ArrayUtils.isNotEmpty(objects)) { + try { + LoggingEvent event = SerializerHelper.deserialize((byte[]) objects[0]); + DesignerLogHandler.getInstance().printLoggingEvent(event); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); } - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); } } }; diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java index 12a7e9c058..0b0563adb4 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java @@ -48,7 +48,6 @@ import com.fr.design.mainframe.form.FormECDesignerProvider; import com.fr.design.mainframe.form.FormElementCaseDesigner; import com.fr.design.mainframe.form.FormReportComponentComposite; import com.fr.design.mainframe.loghandler.DesignerLogAppender; -import com.fr.design.mainframe.loghandler.DesignerLogImpl; import com.fr.design.mainframe.loghandler.LogMessageBar; import com.fr.design.mainframe.socketio.DesignerSocketIO; import com.fr.design.module.DesignModuleFactory; @@ -91,7 +90,6 @@ import com.fr.report.cell.painter.CellImagePainter; import com.fr.stable.ArrayUtils; import com.fr.stable.ParameterProvider; import com.fr.stable.bridge.StableFactory; -import com.fr.stable.fun.LogProvider; import com.fr.stable.plugin.ExtraDesignClassManagerProvider; import com.fr.stable.script.CalculatorProviderContext; import com.fr.stable.script.ValueConverter; @@ -100,7 +98,7 @@ import com.fr.stable.xml.ObjectXMLWriterFinder; import com.fr.start.BBSGuestPaneProvider; import com.fr.xml.ReportXMLUtils; -import java.awt.Image; +import java.awt.*; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; @@ -165,7 +163,6 @@ public class DesignerActivator extends Activator implements Prepare { InformationCollector.getInstance().collectStartTime(); ExtraDesignClassManager.getInstance().getFeedback().didFeedback(); - StableFactory.registerMarkedObject(LogProvider.MARK_STRING, DesignerLogImpl.getInstance()); } private static void preLoadPane() {