Hi Jake, Thanks for the hint. But I am afraid that is not quite that what I ment. Looking at the example below there is the following line: <param name="string4Construction" value="${input.file.path}"></param> Here the parameter string4Construction gets a value from the SystemProperty "input.file.path". So actually if the SystemProperty's value is "MyInputFile.txt" then the parameter string4Construction got exactly its value "MyInputFile.txt". The syntax ${"propertyname"} is already built in somewhere of log4j, I think, which means that it will be looked at runtime on the System-Properties for getting the value of the property named here. If I knew where in the code of log4j that resolving takes place, I could may be understand how to manage it, to give dynamigly own Properties-ojects while run-time. Since there was no special code needed for inventing own parameters, but producing setter-methods in the customized appender, I believe log4j binds the parameters by reflection.
Malte -----Ursprüngliche Nachricht----- Von: Jacob Kjome [mailto:h...@visi.com] Gesendet: Freitag, 16. November 2012 18:04 An: Log4J Users List Betreff: Re: Communcating An Own Properties-Object To log4j As Substtution For System-Properties Well, you can manually bind properties at configuration time by loading the config as a properties object, adding more properties, and then calling configure(Properties) [1]. It's not clear to me how this might be done with XML configuration, thought I vaguely recall it being talked about in the past? [1] http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#configure%28java.util.Properties%29 Jake On Fri, 16 Nov 2012 15:12:18 +0100 <malte.kem...@de.equens.com> wrote: > Hi to all (again), > I just thought on theoretical level. My problem, using log4j in a >mulithraded environment using > Apender that create file names using property input could only work, if it >is possible to give the appender (log4) > An own properties-object, rahter than using the Systm-Properties. > Is there a method, with that you are able to tell an apender to get an very >own Properties-Object with out the need to change the configuration >possibility using ${propertiesname} to address the partcular property? > > right now my appender configuration looks liek that: > > <appender name="xsd-check" class="de.cmk.log4j.NameComposingFileAppender"> > <param name="string4Construction" value="${input.file.path}"></param> > > <param name="inputRegex" value="(.*)"></param> > <param name="file" value="logs/[user.name]/XSDCHECK.(0).log" >></param> > <param name="Append" value="false" /> > <layout class="org.apache.log4j.PatternLayout"> > <param name="ConversionPattern" > value="%d{ISO8601} %-5p %m%n" /> > </layout> > </appender> > > I would like to tell the an appender, by using a log4j-method within a >certian application init-time. > > Is there something like that or is something like that planned in a later >version of log4j? > (Is there any chance something like that would work at all?) > > thanks in advancs for any hints > > > Malte > > > > -----Ursprüngliche Nachricht----- > Von: malte.kem...@de.equens.com [mailto:malte.kem...@de.equens.com ><mailto:malte.kem...@de.equens.com> ] > Gesendet: Freitag, 16. November 2012 13:37 > An: log4j-user@logging.apache.org > Betreff: AW: Funny Bbehaviour Wth A Customzed Appender > > Hi Gary, > finally I found the trouble. It got nothing to do with log4j itself. It is >the stuff around my application, since I comuniate the input file names >within Systemproperties, that are filled by one but not by the other >application. The logger produces empty files for each, even though the other >application not even running. I guess the cause of this is that I am using >just one logging config for all my applcations. I probably could fix this >behaviour by using for each application an own logger config. > > Inkow, using system properties is not the best choice, because they are >global. That makes thread safety impossible. For a long term I should >overthink the comunication of properties to my NamedFileAppender. > Is there another way to build up a file name for the logging using things >like input file names may be with appenders that are shiiped with log4j? > > Malte > > ________________________________ > > Von: Gary Gregory [mailto:garydgreg...@gmail.com ><mailto:garydgreg...@gmail.com> ] > Gesendet: Donnerstag, 15. November 2012 18:03 > An: Log4J Users List > Betreff: Re: Funny Bbehaviour Wth A Customzed Appender > > > Hi Malte, > > You should probably file a Bugzilla issue but I am not sure how much > help you'll get here because you are using custom code. There you can > attach all the files you want. > > Can this be reproduced in any way with a stock appender of any type like > a rolling file appender? > > The best way to get anyone to help is to create a standalone program > that illustrates the problem. Ideally, it should be a unit test that > fails. > > Another question that will come up is, does using the current version, > 1.2.17, work better? Differently? > > Gary > > > On Thu, Nov 15, 2012 at 11:14 AM, <malte.kem...@de.equens.com> wrote: > > > > Hi to all, > I have programmed an appender dirived from FileAppender, that is > able to produce log-files with file names that you can controll in a > more flexible way. > You can use an other String, for example the input file, or > parts of it to produce your desired log file name, seq-numbers and time > stamps etc. > > My applcation, that got the log-config (actually the xml > configuration type) is a mroe infratstuctional Programm, that calls > other applications like converters. > I have put all in one single log-configuration-file using the > cusomized appender on several file processing applcations. > > The confguration is like this, that each processed file is > suppose to produce one log file per application that is processing it. > > For one application it works pretty good. Ror another it > produces each expected log file but produces the logs for all turns only > in one file. The others stay empty. > > > > I am not sure what I am doing wrong and what is going on here. I > cannot understand why in one case it works (s.FEDCONV...log) , in the > other it does not at all (s. XSDCHECK...log). > > here the contend of the only filled XSDCHECK...log > (XSDCHECK.x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.120001.000.TXT.log) > 2012-11-15 09:33:52,594 INFO > ***************************************** > 2012-11-15 09:33:52,594 INFO * XSD-Checker V 1.0 > * > 2012-11-15 09:33:52,594 INFO > ***************************************** > 2012-11-15 09:33:52,610 INFO using 'C:\tmp\Neuer > Ordner\FED-Local\filedemon-fed-test\xsds\pacs.008.001.01.xsd' as > XSD-File > 2012-11-15 09:33:52,610 INFO using > 'xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.120002.000.TXT.pacs08.xm > l' as Input-File > 2012-11-15 09:33:52,672 INFO > "xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.120002.000.TXT.pacs08.xm > l" is valid. > 2012-11-15 09:33:52,688 INFO > ***************************************** > 2012-11-15 09:33:52,688 INFO * XSD-Checker V 1.0 > * > 2012-11-15 09:33:52,688 INFO > ***************************************** > 2012-11-15 09:33:52,688 INFO using 'C:\tmp\Neuer > Ordner\FED-Local\filedemon-fed-test\xsds\pacs.008.001.01.xsd' as > XSD-File > 2012-11-15 09:33:52,688 INFO using > 'xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.090004.000.TXT.pacs08.xm > l' as Input-File > 2012-11-15 09:33:52,719 INFO > "xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.090004.000.TXT.pacs08.xm > l" is valid. > 2012-11-15 09:33:52,719 INFO > ***************************************** > 2012-11-15 09:33:52,719 INFO * XSD-Checker V 1.0 > * > 2012-11-15 09:33:52,735 INFO > ***************************************** > 2012-11-15 09:33:52,735 INFO using 'C:\tmp\Neuer > Ordner\FED-Local\filedemon-fed-test\xsds\pacs.008.001.01.xsd' as > XSD-File > 2012-11-15 09:33:52,735 INFO using > 'xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.090005.000.TXT.pacs08.xm > l' as Input-File > 2012-11-15 09:33:52,750 INFO > "xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.090005.000.TXT.pacs08.xm > l" is valid. > 2012-11-15 09:33:52,750 INFO > ***************************************** > 2012-11-15 09:33:52,766 INFO * XSD-Checker V 1.0 > * > 2012-11-15 09:33:52,766 INFO > ***************************************** > 2012-11-15 09:33:52,766 INFO using 'C:\tmp\Neuer > Ordner\FED-Local\filedemon-fed-test\xsds\pacs.008.001.01.xsd' as > XSD-File > 2012-11-15 09:33:52,766 INFO using > 'xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.090006.000.TXT.pacs08.xm > l' as Input-File > 2012-11-15 09:33:52,781 INFO > "xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.090006.000.TXT.pacs08.xm > l" is valid. > 2012-11-15 09:33:52,781 INFO > ***************************************** > 2012-11-15 09:33:52,781 INFO * XSD-Checker V 1.0 > * > 2012-11-15 09:33:52,797 INFO > ***************************************** > 2012-11-15 09:33:52,797 INFO using 'C:\tmp\Neuer > Ordner\FED-Local\filedemon-fed-test\xsds\pacs.008.001.01.xsd' as > XSD-File > 2012-11-15 09:33:52,797 INFO using > 'xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.120001.000.TXT.pacs08.xm > l' as Input-File > 2012-11-15 09:33:52,813 INFO > "xsdError\x.C0100.MCP.SAG.SWIFT-MAX.AC.20121106.120001.000.TXT.pacs08.xm > l" is valid. > > > here the content was filled obviously in the log-file of the > last File beeing processed, instead of puting them to each log, that has > already been produced. > > Please find attached the source code of the appender and > dependings (*.java) , the configuration(log4j.xml), and an example of > the logging of log4j itself (log4j-log-log). > I am using log4j version log4j-1.2.15.jar > > > Best regards and thanks for any hints in advance > > Malte > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: > log4j-user-h...@logging.apache.org > > > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > JUnit in Action, 2nd Ed: <http://goog_1249600977 <http://goog_1249600977> > >http://bit.ly/ECvg0 <http://bit.ly/ECvg0> > Spring Batch in Action: <http://s.apache.org/HOq <http://s.apache.org/HOq> > >http://bit.ly/bqpbCK <http://bit.ly/bqpbCK> > Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com> > <http://garygregory.wordpress.com/ <http://garygregory.wordpress.com/> > > Home: http://garygregory.com/ <http://garygregory.com/> > Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> > > > --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org