/******************************************************************************* * Copyright (c) 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt * * Contributors: * Matthew Webster - initial implementation *******************************************************************************/ package org.aspectj.weaver.tools; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; public class DefaultTraceFactory extends TraceFactory { public final static String ENABLED_PROPERTY = "org.aspectj.tracing.enabled"; public final static String FILE_PROPERTY = "org.aspectj.tracing.file"; private boolean tracingEnabled = getBoolean(ENABLED_PROPERTY,false); private PrintStream print; public DefaultTraceFactory() { String filename = System.getProperty(FILE_PROPERTY); if (filename != null) { File file = new File(filename); try { print = new PrintStream(new FileOutputStream(file)); } catch (IOException ex) { if (debug) ex.printStackTrace(); } } } public boolean isEnabled() { return tracingEnabled; } public Trace getTrace (Class clazz) { DefaultTrace trace = new DefaultTrace(clazz); trace.setTraceEnabled(tracingEnabled); if (print != null) trace.setPrintStream(print); return trace; } }