@Override public String format(LogItem logItem) { String logStr = logItem.getLevel() + " " + SafeSimpleDateFormat.defaultDateFormat.format(logItem.getDate()); if (!CollectionUtils.isEmpty(logItem.getMdcData())) { logStr += " " + logItem.getMdcData(); } if (StringUtils.hasText(logItem.getClassName())) { String[] arr = $.string.split(logItem.getClassName(), '.'); logStr += " " + arr[arr.length - 1]; } if (StringUtils.hasText(logItem.getThreadName())) { logStr += " " + logItem.getThreadName(); } if (logItem.getStackTraceElement() != null) { logStr += " " + logItem.getStackTraceElement(); } logStr += " -> " + logItem.renderContentTemplate(); return logStr; } }
private void add(String str, String level, Throwable throwable, Object... objs) { LogItem item = new LogItem(); item.setLevel(level); item.setName(name); item.setContent(str); item.setObjs(objs); item.setThrowable(throwable); item.setDate(new Date()); item.setMdcData(mdc.getCopyOfContextMap()); item.setClassName(ClassNameLogWrap.name.get()); item.setThreadName(Thread.currentThread().getName()); if (stackTrace) { item.setStackTraceElement(getStackTraceElement()); } LogFactory.getInstance().getLogTask().add(item); }
@Override public void add(LogItem logItem) { if (!start) return; if (VerifyUtils.isEmpty(logItem.getName())) throw new IllegalArgumentException("log name is empty"); queue.offer(logItem); }
@Override public void filter(LogItem logItem) { if (logItem.getLevel().equals("ERROR")) { logger.error(logItem.getContent(), logItem.getThrowable()); } } }
private void add(String str, String level, Throwable throwable, Object... objs) { LogItem item = new LogItem(); item.setLevel(level); item.setName(name); item.setContent(str); item.setObjs(objs); item.setThrowable(throwable); if (stackTrace) { item.setStackTraceElement(getStackTraceElement()); } LogFactory.getInstance().getLogTask().add(item); }
@Override public String toString() { if (logStr == null) { logStr = level + " " + SafeSimpleDateFormat.defaultDateFormat.format(date); if (mdcData != null && !mdcData.isEmpty()) { logStr += " " + mdcData; } if (StringUtils.hasText(className)) { logStr += " " + className; } if (stackTraceElement != null) { logStr += " " + stackTraceElement; } logStr += "\t" + renderContentTemplate(); } return logStr; }
void write(LogItem logItem) { Optional.ofNullable(logFilter).ifPresent(f -> f.filter(logItem)); if (consoleOutput) { System.out.println(logFormatter.format(logItem)); } if (fileOutput) { output.write(logFormatter.format(logItem), logItem.getDate()); intervalFlush(); } }
@Override public String format(LogItem logItem) { String logStr = logItem.getLevel() + " " + SafeSimpleDateFormat.defaultDateFormat.format(logItem.getDate()); if (!CollectionUtils.isEmpty(logItem.getMdcData())) { logStr += " " + logItem.getMdcData(); } if (StringUtils.hasText(logItem.getClassName())) { String[] arr = $.string.split(logItem.getClassName(), '.'); logStr += " " + arr[arr.length - 1]; } if (StringUtils.hasText(logItem.getThreadName())) { logStr += " " + logItem.getThreadName(); } if (logItem.getStackTraceElement() != null) { logStr += " " + logItem.getStackTraceElement(); } logStr += " " + logItem.renderContentTemplate(); return logStr; } }
@Override public void add(LogItem logItem) { if (!start) return; if (VerifyUtils.isEmpty(logItem.getName())) throw new IllegalArgumentException("log name is empty"); queue.offer(logItem); } }
@Override public void run() { while (true) { try { for (LogItem logItem; (logItem = queue.poll(flushInterval, TimeUnit.MILLISECONDS)) != null; ) { try { FileLog fileLog = getFileLog(logItem.getName()); if (fileLog != null) { fileLog.write(logItem); } } catch (Throwable e) { System.err.println("write log exception, " + e.getMessage()); } } intervalFlushAll(); } catch (Throwable e) { System.err.println("write log exception, " + e.getMessage()); } if (!start && queue.isEmpty()) { for (String key : logTree.keySet()) { FileLog fileLog = getFileLog(key); if (fileLog != null) { fileLog.close(); } } break; } } }
try { for (LogItem logItem = null; (logItem = queue.poll(1000, TimeUnit.MILLISECONDS)) != null;) { Log log = LogFactory.getInstance().getLog(logItem.getName()); if (log instanceof FileLog) { ((FileLog) log).write(logItem);