All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.test4j.module.tracer.TxtFileTracerLogger Maven / Gradle / Ivy

package org.test4j.module.tracer;

import java.io.IOException;
import java.io.Writer;

import org.test4j.tools.commons.StringHelper;

@SuppressWarnings("rawtypes")
public class TxtFileTracerLogger extends TracerLogger {
	private StringBuilder buff = new StringBuilder();

	@Override
	public void writerMethodInputInfo(Class claz, String method, Object[] values) {
		buff.append("#START_INPUT#" + claz.getName() + "#" + method + "#" + values.length);
		buff.append("\n");
		for (int index = 1; index <= values.length; index++) {
			buff.append("#START_PARAMETER#" + index);
			buff.append("\n");
			buff.append(toJSON(values[index - 1]));
			buff.append("\n");
			buff.append("#END_PARAMETER");
			buff.append("\n");
		}
		buff.append("#END_INPUT");
		buff.append("\n");
	}

	@Override
	public void writerMethodException(Class claz, String method, Throwable exception) {
		buff.append("#START_EXCEPTION#" + claz.getName() + "#" + method);
		buff.append("\n");
		buff.append(exception.getMessage());
		buff.append("\n");
		buff.append("#END_EXCEPTION");
		buff.append("\n");
	}

	@Override
	public void writerMethodReturnValue(Class claz, String method, Object result) {
		buff.append("#START_RETURN#" + claz.getName() + "#" + method);
		buff.append("\n");
		buff.append(toJSON(result));
		buff.append("\n");
		buff.append("#END_RETURN");
		buff.append("\n");
	}

	@Override
	public void writerSqlStatement(String sql, Object result) {
		buff.append("#START_SQL");
		buff.append("\n");
		buff.append(sql);
		buff.append("\n");
		buff.append("#END_SQL");
		buff.append("\n");
	}

	@Override
	public void close() {
		String log = buff.toString();
		if (StringHelper.isBlankOrNull(log)) {
			return;
		}
		try {
			Writer writer = getWriter("txt");
			writer.write(log);
			writer.close();
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy