当前位置: 首页>>代码示例>>Java>>正文


Java ThrowableProxy.getExtendedStackTraceAsString方法代码示例

本文整理汇总了Java中org.apache.logging.log4j.core.impl.ThrowableProxy.getExtendedStackTraceAsString方法的典型用法代码示例。如果您正苦于以下问题:Java ThrowableProxy.getExtendedStackTraceAsString方法的具体用法?Java ThrowableProxy.getExtendedStackTraceAsString怎么用?Java ThrowableProxy.getExtendedStackTraceAsString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.logging.log4j.core.impl.ThrowableProxy的用法示例。


在下文中一共展示了ThrowableProxy.getExtendedStackTraceAsString方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: format

import org.apache.logging.log4j.core.impl.ThrowableProxy; //导入方法依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public void format(final LogEvent event, final StringBuilder toAppendTo) {
    final ThrowableProxy proxy = event.getThrownProxy();
    final Throwable throwable = event.getThrown();
    if ((throwable != null || proxy != null) && options.anyLines()) {
        if (proxy == null) {
            super.format(event, toAppendTo);
            return;
        }
        final String extStackTrace = proxy.getExtendedStackTraceAsString(options.getIgnorePackages(),
                options.getTextRenderer(), getSuffix(event), options.getSeparator());
        final int len = toAppendTo.length();
        if (len > 0 && !Character.isWhitespace(toAppendTo.charAt(len - 1))) {
            toAppendTo.append(' ');
        }
        toAppendTo.append(extStackTrace);
    }
}
 
开发者ID:apache,项目名称:logging-log4j2,代码行数:22,代码来源:ExtendedThrowablePatternConverter.java

示例2: format

import org.apache.logging.log4j.core.impl.ThrowableProxy; //导入方法依赖的package包/类
private final String format(final LogEvent event) {
	final StringBuilder sb = getStringBuilder();
	if (complete && eventCount > 0) {
		sb.append(", ");
	}
	sb.append('{');
	// Internal Info
	json(sb, "layout.version", LAYOUT_VERSION);
	json(sb, "layout.start", layoutStartTime);
	json(sb, "layout.sequence", layoutSequence.incrementAndGet());
	// Basic Info
	json(sb, "timestamp", event.getTimeMillis());
	json(sb, "thread", event.getThreadName());
	json(sb, "threadId", event.getThreadId());
	json(sb, "level", event.getLevel().toString());
	json(sb, "logger", event.getLoggerName());
	// Caller info
	if (locationInfo) {
		final StackTraceElement source = event.getSource();
		json(sb, "source");
		sb.append('{');
		json(sb, "class", source.getClassName());
		json(sb, "method", source.getMethodName());
		json(sb, "file", source.getFileName());
		json(sb, "line", source.getLineNumber());
		sb.setLength(sb.length() - 1);
		sb.append('}').append(',');
	}
	// Diagnostic Context
	if (properties) {
		if (!event.getContextStack().isEmpty()) {
			json(sb, "ndc", event.getContextStack().asList());
		}
		if (!event.getContextData().isEmpty()) {
			json(sb, "mdc", event.getContextData().toMap());
		}
	}
	// Additional Fields
	for (int i = 0; i < additionalFields.length; i++) {
		final KeyValuePair kv = additionalFields[i];
		final String key = kv.getKey();
		final String value = kv.getValue();
		final String iv = interpolator.lookup(event, value);
		if (iv != null) {
			json(sb, (key != null) ? key : value, iv);
		}
	}
	// Message
	json(sb, "msg", event.getMessage().getFormattedMessage());
	// Exceptions
	if (event.getThrownProxy() != null) {
		final ThrowableProxy throwableInfo = event.getThrownProxy();
		final Throwable t = throwableInfo.getThrowable();
		final String exClass = t.getClass().getCanonicalName();
		if (exClass != null) {
			json(sb, "exception", exClass);
		}
		final String exMsg = t.getMessage();
		if (exMsg != null) {
			json(sb, "cause", exMsg);
		}
		// TODO: Change pure string to complex list/maps of stacktraces?
		final String stackTrace = throwableInfo.getExtendedStackTraceAsString("");
		if (stackTrace != null) {
			json(sb, "stacktrace", stackTrace);
		}
	}
	sb.setLength(sb.length() - 1);
	sb.append('}').append(eol);
	return sb.toString();
}
 
开发者ID:ggrandes,项目名称:log4j2-simplejson,代码行数:72,代码来源:SimpleJSONLayout.java

示例3: processLogEvent

import org.apache.logging.log4j.core.impl.ThrowableProxy; //导入方法依赖的package包/类
private Message processLogEvent(LogEvent logEvent) {
    final String formattedMessage = logEvent.getMessage().getFormattedMessage();
    final DateTime timestamp = new DateTime(logEvent.getTimeMillis(), DateTimeZone.UTC);
    final Message message = new Message(formattedMessage, hostname, timestamp);

    final Level level = logEvent.getLevel();
    message.addField(Message.FIELD_LEVEL, Severity.getSeverity(level).getCode());
    message.addField("log4j_level", level.name());
    message.addField("log4j_level_int", level.intLevel());

    message.addField("node_id", nodeId);
    if (clusterId != null) {
        message.addField("cluster_id", clusterId);
    }
    message.addField("logger_name", logEvent.getLoggerName());
    message.addField("thread_id", logEvent.getThreadId());
    message.addField("thread_name", logEvent.getThreadName());
    message.addField("thread_priority", logEvent.getThreadPriority());
    message.addField("timestamp_nanos", logEvent.getNanoTime());

    final Marker marker = logEvent.getMarker();
    if (marker != null) {
        message.addField("marker", marker.getName());
    }

    if (includeThreadContext) {
        logEvent.getContextData().forEach((k, v ) -> message.addField("context_" + k, v));

        // Guard against https://issues.apache.org/jira/browse/LOG4J2-1530
        final ThreadContext.ContextStack contextStack = logEvent.getContextStack();
        if (contextStack != null) {
            final List<String> contextStackItems = contextStack.asList();
            if (contextStackItems != null && !contextStackItems.isEmpty()) {
                message.addField("context_stack", contextStackItems);
            }
        }
    }

    if (includeSource) {
        final StackTraceElement source = logEvent.getSource();
        if (source != null) {
            message.addField("source_file_name", source.getFileName());
            message.addField("source_method_name", source.getMethodName());
            message.addField("source_class_name", source.getClassName());
            message.addField("source_line_number", source.getLineNumber());
        }
    }

    final ThrowableProxy throwableProxy = logEvent.getThrownProxy();
    if (includeStackTrace && throwableProxy != null) {
        final String stackTrace;
        if (includeExceptionCause) {
            stackTrace = throwableProxy.getExtendedStackTraceAsString("");
        } else {
            stackTrace = throwableProxy.getCauseStackTraceAsString("");
        }

        message.addField("exception_class", throwableProxy.getName());
        message.addField("exception_message", throwableProxy.getMessage());
        message.addField("exception_stack_trace", stackTrace);
    }

    return message;
}
 
开发者ID:graylog-labs,项目名称:graylog-plugin-internal-logs,代码行数:65,代码来源:SerializedLogEventCodec.java

示例4: format

import org.apache.logging.log4j.core.impl.ThrowableProxy; //导入方法依赖的package包/类
/**
  * {@inheritDoc}
  */
 @Override
 public void format(final LogEvent event, final StringBuilder toAppendTo) {

 	
     final ThrowableProxy proxy = event.getThrownProxy();
     final Throwable throwable = event.getThrown();
     
     
     //xpipe code
     if(throwable != null){
  	if(ExceptionUtils.isSocketIoException(event.getThrown()) || ExceptionUtils.xpipeExceptionLogMessage(throwable)){
  		toAppendTo.append("," + throwable.getClass() + ":" + throwable.getMessage());
  		return;
  	}
  	
  	String extra = ExceptionUtils.extractExtraMessage(throwable);
  	if(extra != null){
	toAppendTo.append(String.format("\n[%s]", extra));
}
     }

     if ((throwable != null || proxy != null) && options.anyLines()) {
         if (proxy == null) {
             super.format(event, toAppendTo);
             return;
         }
         final String extStackTrace = proxy.getExtendedStackTraceAsString(options.getPackages());
         final int len = toAppendTo.length();
         if (len > 0 && !Character.isWhitespace(toAppendTo.charAt(len - 1))) {
             toAppendTo.append(' ');
         }
         if (!options.allLines() || !Constants.LINE_SEPARATOR.equals(options.getSeparator())) {
             final StringBuilder sb = new StringBuilder();
             final String[] array = extStackTrace.split(Constants.LINE_SEPARATOR);
             final int limit = options.minLines(array.length) - 1;
             for (int i = 0; i <= limit; ++i) {
                 sb.append(array[i]);
                 if (i < limit) {
                     sb.append(options.getSeparator());
                 }
             }
             toAppendTo.append(sb.toString());

         } else {
             toAppendTo.append(extStackTrace);
         }
     }
 }
 
开发者ID:ctripcorp,项目名称:x-pipe,代码行数:52,代码来源:XPipeThrowablePatternConverter.java


注:本文中的org.apache.logging.log4j.core.impl.ThrowableProxy.getExtendedStackTraceAsString方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。