[logback-dev] [JIRA] Created: (LBCORE-202) Shutdown hook to close logger context

Tuomas Kiviaho (JIRA) noreply-jira at qos.ch
Tue Mar 29 08:00:52 CEST 2011


Shutdown hook to close logger context
-------------------------------------

                 Key: LBCORE-202
                 URL: http://jira.qos.ch/browse/LBCORE-202
             Project: logback-core
          Issue Type: Improvement
          Components: Other
    Affects Versions: 0.9.27
            Reporter: Tuomas Kiviaho
            Assignee: Logback dev list


I'm using header and footer with my file appender and would like footers to be present in file when processes exit (JUnit tests mainly). I figured out a to achieve this by using status listeners and logger context (presented below) combined with shutdown hook. This is something that logback jar could probably in one form or another (spring framework for instance has similar feature for their context).

public class ShutdownHookStatusListener extends ContextAwareBase implements
		StatusListener, LifeCycle {

	private Thread shutdownHook;

	@Override
	public void addStatusEvent(Status status) {

	}

	@Override
	public boolean isStarted() {
		return this.shutdownHook != null;
	}

	@Override
	public void start() {
		if (!this.isStarted()) {
			this.shutdownHook = new Thread() {

				@Override
				public void run() {
					LoggerContext loggerContext = (LoggerContext) LoggerFactory
							.getILoggerFactory();
					loggerContext.stop();
				}

			};
			Runtime runtime = Runtime.getRuntime();
			runtime.addShutdownHook(this.shutdownHook);
		}
	}

	@Override
	public void stop() {
		if (this.isStarted()) {
			Runtime runtime = Runtime.getRuntime();
			runtime.removeShutdownHook(this.shutdownHook);
			this.shutdownHook = null;
		}
	}

}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the logback-dev mailing list