comment ecrire dans le log file?
Bonjour,
Voilà je boss sur une application et ma tâche est de créér un standalone(= classe main) qui va logger des messages dans un fichier avec différents paramètres.Mon problème est que j'ai écris la classe(pas complète encore) juste pour tester s'il écris bien dans le fichier ce qui n'est pas le cas.Je vous donne le morceau de code de ma classe main:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public static void main(String [] args){
Logger logger = new Logger(CommandLineLogger.class);
try {
Logger.setCommonEventData(new CommonLogInfo("efef","psis","efe","fe"));
// Initialise the logging system
StandaloneInitialiser standaloneInitialiser = new StandaloneInitialiser();
standaloneInitialiser.configureFromFile( standaloneInitialiser.getConfigFileName());
logger.debug("hello this is a simple test for debug");
logger.debug("hello this is a simple test for debug");
logger.debug("hello this is a simple test for debug");
logger.debug("hello this is a simple test for debug");
} catch (Exception e) {
e.printStackTrace();
} |
StandaloneInitialiser est une classe qui étend la classe abstraite "LoggerInitialiser" et donc qui redéfinit les méthodes dont
"configureFromFile(String s)" qui prend en paramètre une String qui est en fait le nom du fichier Log4j.xml. Je sais pas si je dois faire un traitement particulier pour logger les infos dans le fichier.Le fichier Xml contient déjà une série de config.
Voilà en espérant que l'on pourra m'aider....
Merci d'avance
comment logger des messages dans un fichier?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!--
*
* DevelopmentLog4j.xml
*
* This is a template file for developers.
* Amend as necessary depending upon your own requirements.
*
-->
<!--
*
* Configuration file for Log4J
* @version 1.0
* @author
*
-->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<renderer renderedClass="com.syntegra.nhs.nasp.rts.logging.LogEvent"
renderingClass="com.syntegra.nhs.nasp.rts.logging.LogEventRenderer"/>
<!--
*
* Appender details
* The threshold (if defined) within any appender will override the level
* defined on the corresponding logger.
*
-->
<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="debug"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d|%p|%t|%c|%m%n"/>
</layout>
</appender>
<appender name="NullAppender" class="org.apache.log4j.varia.NullAppender">
</appender>
<appender name="FileAppender" class="org.apache.log4j.FileAppender">
<param name="Threshold" value="debug"/>
<param name="File" value="test-output.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d|%p|%t|%c|%m%n"/>
</layout>
</appender>
<!-- Appenders using the TMS logger -->
<appender name="AuditAppender" class="org.apache.log4j.DailyRollingFileAppender">
<!--
*
* Keep a daily log file, each one suffixed with the date,
* files will be backed up at midnight every day.
* e.g. audit.log.2004-02-29 will be created at midnight on the
* 29 February, 2004 and on the 1st March, 2004 logging will be
* logged to audit.log
-->
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<!-- Note: use forward slashes within paths -->
<param name="File" value="audit.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d|%p|%t|%c|%m%n"/>
</layout>
</appender>
<appender name="PerfAppender" class="org.apache.log4j.DailyRollingFileAppender">
<!--
*
* Keep a daily log file, each one suffixed with the date,
* files will be backed up at midnight every day.
* e.g. performance.log.2004-02-29 will be created at midnight on the
* 29 February, 2004 and on the 1st March, 2004 logging will be
* logged to performance.log
-->
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<!-- Note: use forward slashes within paths -->
<param name="File" value="performance.log" />
<param name="Append" value="false" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d|%p|%t|%c|%m%n"/>
</layout>
</appender>
<appender name="DiagAppender" class="org.apache.log4j.DailyRollingFileAppender">
<!--
*
* Keep a daily log file, each one suffixed with the date,
* files will be backed up at midnight every day.
* e.g. diagnostic.log.2004-02-29 will be created at midnight on the
* 29 February, 2004 and on the 1st March, 2004 logging will be
* logged to diagnostic.log
-->
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<!-- Note: use forward slashes within paths -->
<param name="File" value="diagnostic.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d|%p|%t|%c|%m%n"/>
</layout>
</appender>
<!--
*
* Details of loggers ('Logger's replace - actually extend - 'Category's)
* Note: Within loggers, 'level' is synonymous with 'priority'
*
-->
<!-- Base logger for Audit events -->
<logger name="AUDIT.com.logicacmg" additivity="false">
<!-- The only available level for Audit events is AUDIT. -->
<level value="audit" class="com.syntegra.nhs.nasp.rts.logging.AuditLevel"/>
<appender-ref ref="AuditAppender"/>
</logger>
<!-- Base logger for Performance events -->
<logger name="PERFORMANCE.com.logicacmg" additivity="false">
<level value="perfMax" class="com.syntegra.nhs.nasp.rts.logging.PerformanceLevel"/>
<appender-ref ref="PerfAppender"/>
</logger>
<!-- Base logger for Diagnostic events -->
<logger name="DIAGNOSTIC.com.logicacmg" additivity="false">
<level value="debug"/>
<appender-ref ref="DiagAppender"/>
</logger>
<!--
*
* Details of default (Root) logger
* Note: Would normally have a default level of 'debug'.
*
-->
<root>
<!--
* Set default to OFF to suppress any logging outside our TMS
* packages.
* Our TMS specific packages will enable logging as appropriate.
-->
<level value="debug" />
<appender-ref ref="FileAppender"/>
</root>
<!-- This is needed by Log4J as it will create logger instances internally. -->
<categoryFactory class="com.syntegra.nhs.nasp.rts.logging.EventLoggerFactory"/>
</log4j:configuration> |
voilà ci-dessus la copie du fichier log4jxml ke j'utilise.C'est un fichier qui est utilisé pour toute l'application.
/**
* The setMessageDetails method - Called to set the thread specific message
* details for the CommonEventData object so that this can be used when the
* error is logged. This is because CommonEventData is a required field for
* all logging calls.
*
* @param commonLogInfo - the Common Event data to be stored on ThreadLocal.
*/
Code:
1 2
|
Logger.setCommonEventData(new CommonLogInfo("efef","psis","efe","fe")); |
Si je redéfinis pas cette méthode il me donne une erreur.
Actuellement il me créer les différents fichiers de log(AUDIT,DIAGNOSTIC...)
mais n'y écris rien dedans.
J'espère que mon problème est un peu plus clair.
Merci bien en tous cas