From: John Smith on

I want to create a new logger instance that will simultaniusly log to
another file. I was able to do that programatically.
So when I instantiate the logger like this:

----------------------------------------------------
Logger logger = Logger.getLogger("AnotherLogger");
----------------------------------------------------

it writes to a separate log file "AnotherLogFile.txt".

I do not like the idea to hard-code the appender instantiation.

---------------------------------------------------
Layout layout = new PatternLayout("%d %-5p %m%n");
RollingFileAppender rfa = new RollingFileAppender(layout,
"AnotherLogFile.txt");
rfa.setMaxFileSize(10MB);
rfa.setMaxBackupIndex(8);

Logger.getLogger("AnotherLogger").setAdditivity(false);
Logger.getLogger("AnotherLogger").addAppender(rfa);


-----------------------------------------------------

The question is can I configure this via log4j.properties?

Thanks in advance for any suggestions.
From: Lew on
John Smith wrote:
> I want to create a new logger instance that will simultaniusly log to
> another file. I was able to do that programatically.
> So when I instantiate the logger like this:
>
> ----------------------------------------------------
> Logger logger = Logger.getLogger("AnotherLogger");
> ----------------------------------------------------
>
> it writes to a separate log file "AnotherLogFile.txt".
>
> I do not like the idea to hard-code the appender instantiation.
>
> ---------------------------------------------------
> Layout layout = new PatternLayout("%d %-5p %m%n");
> RollingFileAppender rfa = new RollingFileAppender(layout,
> "AnotherLogFile.txt");
> rfa.setMaxFileSize(10MB);
> rfa.setMaxBackupIndex(8);
>
>
> Logger.getLogger("AnotherLogger").setAdditivity(false);
> Logger.getLogger("AnotherLogger").addAppender(rfa);
>
>
> -----------------------------------------------------
>
> The question is can I configure this via log4j.properties?

What have you been able to do with log4j.properties so far?

Try (using your own folders, files and package names, of course):

# logj4.properties
log4j.rootCategory = WARN, A
log4j.category.com.lewscanon = WARN, F
log4j.category.com.lewscanon.mouser = DEBUG, X

log4j.appender.A = org.apache.log4j.ConsoleAppender
log4j.appender.A.layout = org.apache.log4j.PatternLayout

log4j.appender.F = org.apache.log4j.RollingFileAppender
log4j.appender.F.layout = org.apache.log4j.PatternLayout
log4j.appender.F.File = /projects/mouser/logs/lewscanon.log
log4j.appender.F.MaxFileSize = 512KB
log4j.appender.F.MaxBackupIndex = 2

log4j.appender.X = org.apache.log4j.RollingFileAppender
log4j.appender.X.layout = org.apache.log4j.PatternLayout
log4j.appender.X.File = /projects/mouser/logs/mouser.log
log4j.appender.X.MaxFileSize = 512KB
log4j.appender.X.MaxBackupIndex = 2

log4j.appender.A.layout.ConversionPattern= %d %-16c{1}:%-39m %-t %x%n
log4j.appender.F.layout.ConversionPattern= %d %-16c{1}:%-39m %-t %x%n
log4j.appender.X.layout.ConversionPattern= %d %-16c{1}:%-39m %-t %x%n

--
Lew
From: John Smith on
On 30.4.2010. 1:45, Lew wrote:
> John Smith wrote:
>> I want to create a new logger instance that will simultaniusly log to
>> another file. I was able to do that programatically.
>> So when I instantiate the logger like this:
>>
>> ----------------------------------------------------
>> Logger logger = Logger.getLogger("AnotherLogger");
>> ----------------------------------------------------
>>
>> it writes to a separate log file "AnotherLogFile.txt".
>>
>> I do not like the idea to hard-code the appender instantiation.
>>
>> ---------------------------------------------------
>> Layout layout = new PatternLayout("%d %-5p %m%n");
>> RollingFileAppender rfa = new RollingFileAppender(layout,
>> "AnotherLogFile.txt");
>> rfa.setMaxFileSize(10MB);
>> rfa.setMaxBackupIndex(8);
>>
>> Logger.getLogger("AnotherLogger").setAdditivity(false);
>> Logger.getLogger("AnotherLogger").addAppender(rfa);
>> -----------------------------------------------------
>>
>> The question is can I configure this via log4j.properties?
>
> What have you been able to do with log4j.properties so far?
>
> Try (using your own folders, files and package names, of course):
>
> # logj4.properties
> log4j.rootCategory = WARN, A
> log4j.category.com.lewscanon = WARN, F
> log4j.category.com.lewscanon.mouser = DEBUG, X
>
> log4j.appender.A = org.apache.log4j.ConsoleAppender
> log4j.appender.A.layout = org.apache.log4j.PatternLayout
>
> log4j.appender.F = org.apache.log4j.RollingFileAppender
> log4j.appender.F.layout = org.apache.log4j.PatternLayout
> log4j.appender.F.File = /projects/mouser/logs/lewscanon.log
> log4j.appender.F.MaxFileSize = 512KB
> log4j.appender.F.MaxBackupIndex = 2
>
> log4j.appender.X = org.apache.log4j.RollingFileAppender
> log4j.appender.X.layout = org.apache.log4j.PatternLayout
> log4j.appender.X.File = /projects/mouser/logs/mouser.log
> log4j.appender.X.MaxFileSize = 512KB
> log4j.appender.X.MaxBackupIndex = 2
>
> log4j.appender.A.layout.ConversionPattern= %d %-16c{1}:%-39m %-t %x%n
> log4j.appender.F.layout.ConversionPattern= %d %-16c{1}:%-39m %-t %x%n
> log4j.appender.X.layout.ConversionPattern= %d %-16c{1}:%-39m %-t %x%n
>

Thank you very much, this works.
I modified a little not to use package logging. I use another logger
instead that covers all the packages, but writes to a different file.


log4j.category.AnotherLogger=WARN, F
log4j.additivity.AnotherLogger=false

log4j.appender.F=org.apache.log4j.RollingFileAppender
log4j.appender.F.layout = org.apache.log4j.PatternLayout
log4j.appender.F.File = /projects/mouser/logs/lewscanon.log
log4j.appender.F.MaxFileSize = 512KB
log4j.appender.F.MaxBackupIndex = 2