Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457

    Configurare log4j in spring

    Salve ragazzi,
    sto cercando di trovare nel sito ufficiale di spring un argomento che indichi come configurare log4j nell'applicationContext di spring.... voi l'avete trovato?
    Comunque girando per la rete ho trovato qualcosa del genere:

    codice:
    <bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" depends-on="sbeHome">
        <property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
        <property name="targetMethod" value="initLogging" />
        <property name="arguments">
            <list>
                <value>#{ MyAppHome + '/conf/log4j.xml'}</value>
            </list>
        </property>
    </bean>
    A me interessa approfondire quest'argomento come vi dicevo dal sito ufficiale.... Possibile che non ci sia?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Spiega cosa vorresti fare di preciso... Perché di solito la configurazione di log4j non si mette nell'application context di Spring ma in un file (.properties o .xml) a parte.

    Ad esempio, di solito metto un file log4j.xml nel classpath della mia applicazione, come questo:

    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
    <log4j:configuration>
    
        <appender
            name="stdout"
            class="org.apache.log4j.ConsoleAppender">
            <layout class="org.apache.log4j.PatternLayout">
                <param
                    name="ConversionPattern"
                    value="%d{yyyy|MM|dd|HH:mm:ss,SSS} [%t] %5p %-37c{1} - %m%n" />
            </layout>
        </appender>
    
        <logger
            name="com.blablabla.tuopackage_ecc"
            additivity="true">
            <level value="info" />
        </logger>
    
        <root>
            <priority value="info" />
            <appender-ref ref="stdout" />
        </root>
    
    </log4j:configuration>
    Poi dalla mia applicazione Spring ottengo il logger con il solito metodo, Logger.getLogger(MiaClasse.class).
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457
    ...E come fai a dire al log4j dove andare a prendere il file di properties?

    ...prima mi sono espresso male, per configurare intendevo inizializzare log4j nell'applicationContext come bean, come l'esempio che ho postato sopra.....
    Ho visto che il sito ufficiale di spring non riporta alcun aiuto

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Mitele
    ...E come fai a dire al log4j dove andare a prendere il file di properties?

    ...prima mi sono espresso male, per configurare intendevo inizializzare log4j nell'applicationContext come bean, come l'esempio che ho postato sopra.....
    Originariamente inviato da Alex'87
    Ad esempio, di solito metto un file log4j.xml nel classpath della mia applicazione , come questo:
    Mi pare ci sia una property da passare, -Dlog4j.configuration=path_to_log4j.xml
    Probabilmente il default è il classpath dell'applicazione.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457
    Ciao Ale'87,
    intanto grazie per l'aiuto che mi stai dando.
    Con Spring si può aggiungere la seguente definizione di bean
    codice:
    <bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" depends-on="sbeHome">
        <property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
        <property name="targetMethod" value="initLogging" />
        <property name="arguments">
            <list>
                <value>C:/applicazioni/miaApplicazione/logs/miaApplicazione.log</value>
            </list>
        </property>
    </bean>
    ...poi ho trovato il seguente link
    http://helpdesk.objects.com.au/java/how-to-specify-log4j-configuration-in-spring-application

    Questa configurazione funziona, ma non capisco perchè sulla documentazione ufficiale di spring non ci sia nemmeno una riga che spiega la configurazione log4j...e perchè non venga nominata la classe org.springframework.beans.factory.config.MethodInv okingFactoryBean

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Mitele
    Ciao Ale'87,
    intanto grazie per l'aiuto che mi stai dando.
    Con Spring si può aggiungere la seguente definizione di bean
    codice:
    <bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" depends-on="sbeHome">
        <property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
        <property name="targetMethod" value="initLogging" />
        <property name="arguments">
            <list>
                <value>C:/applicazioni/miaApplicazione/logs/miaApplicazione.log</value>
            </list>
        </property>
    </bean>
    ...poi ho trovato il seguente link
    http://helpdesk.objects.com.au/java/how-to-specify-log4j-configuration-in-spring-application
    Non c'è bisogno di scrivere tutta questa roba, come ti ho detto basta mettere il file nel classpath e si arrangia lui a trovarlo (io ho lavorato su una dozzina di progetti con Spring/Spring Batch/Spring Integration e non mi sono mai messo a creare un bean per il logger....


    Originariamente inviato da Mitele
    Questa configurazione funziona, ma non capisco perchè sulla documentazione ufficiale di spring non ci sia nemmeno una riga che spiega la configurazione log4j...
    Perché la documentazione di Spring parla di Spring... e log4j non mi pare faccia parte dello Spring Framework..

    Originariamente inviato da Mitele
    e perchè non venga nominata la classe org.springframework.beans.factory.config.MethodInv okingFactoryBean
    Sono abbastanza sicuro di aver letto, tra la documenzione, qualcosa di questa classe..
    Comunque ci sono un sacco di classi che non vengono nominate, lo Spring Framework è enorme! C'è comunque la javadoc di tutto, se ti serve davvero ti accorgi che una cosa esiste (esperienza personale)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.