• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 794
  • Last Modified:

different log4j file for multiple threads

I need to create a different log4j file for each thread in a process. I want to read the configuration from one file and than change just the file name for each thread.

E.g. Process A  reads loads log4j properties file, the logfile name is processA.log

Process A now spawns 3 new threads, I want each thread to keep the same log4j confiiguation  (i.e. log level, file size etc.) and just change the names to processA_thread1.log, processA_thread2.log et.c

Thanks
0
sshah_tea
Asked:
sshah_tea
1 Solution
 
muktajindalCommented:
You may have your threads as per attached code snippet.

class MyThread extends Thread {
	public MyThread(String name) {
		this.setName(name);
	}
	public synchronized void run() {
		
		Properties props = new Properties();
		props.setProperty("log4j.logger.com.myapp", "INFO, myapp");
		props.setProperty("log4j.appender.myapp", "org.apache.log4j.RollingFileAppender");
		props.setProperty("log4j.appender.myapp.File", "C:/Process_"+getName()+".log");
		props.setProperty("log4j.appender.myapp.layout", "org.apache.log4j.PatternLayout");
		props.setProperty("log4j.appender.myapp.MaxFileSize", "500KB");
		props.setProperty("log4j.appender.myapp.layout.ConversionPattern", "%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n");
		props.setProperty("log4j.appender.myapp.Threshold", "INFO");
 
		PropertyConfigurator.configure(props);
		
		Logger logger = Logger.getLogger(getClass());
		System.out.println("Logging for " + getName());
		logger.info("Testing " + getName());		
	}
}

Open in new window

0
 
sshah_teaAuthor Commented:
perfect!! it worked!!

thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now