Solved

different log4j file for multiple threads

Posted on 2008-09-30
2
735 Views
Last Modified: 2012-05-05
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
Comment
Question by:sshah_tea
2 Comments
 
LVL 5

Accepted Solution

by:
muktajindal earned 500 total points
Comment Utility
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
 

Author Closing Comment

by:sshah_tea
Comment Utility
perfect!! it worked!!

thanks
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Suggested Solutions

For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now