Hi there ,
Is there a specific onfiguration for logger to print log.info() message ? I have action classes extended quatz class as shown below . but the log is not printing out in log file - alfresco.log . I can see system.out.println in tomcat log .
please let me know if there are any configuration changes reuired in log4j.properties ? I have kept all the config default didnt make any changes in log4j
Solved! Go to Solution.
Is there a reason why you had to extend Object class ?
Have you enabled logging for your package or class in log4j.properties? If not, Try adding log setting in following format:
log4j.logger.com.github.mycms.action=INFO
where "com.github.mycms.action" is the package where you class resides.
OR
log4j.logger.com.github.mycms.action.MoveMonthlyDataAction=INFO
where "com.github.mycms.action.MoveMonthlyDataAction" is the fqn of the class.
You can add the settings either in :
$TOMCAT_HOME/shared/classes/alfresco/extension/custom-log4j.properties
OR
You can add the settings either in your custom module which you are applying to alfresco.war:
<yourCustomModule>/src/main/resources/alfresco/module/<custom-module>/log4j.properties
OR
Use admin console to add the log settings, if you are using enterprise version (Note, when you restart server these settings won't persist):
http://<HOST : PORT>/alfresco/s/enterprise/admin/admin-log-settings
One thing I have noticed in your job class is that you are using JUL instead of Log4J, Commons Logging, or - way more ideal - SLF4J. While Commons Logging and SLF4J are both set up to log via Log4J in the backend, I do not think that JUL is set up in the same way. I can only recommend to ALWAYS use SLF4J logging APIs to ensure that a) you are logging to the same file(s) that Alfresco logs to and b) you are not dependent on any specific log backend implementation, and could switch to whatever (e.g. I switched to Logback instead of Log4J in one project).
Also, everything you output via System.out will land in the catalina.out, unless you configure Tomcat to ignore System.out. Generally speaking though, System.out should be forbidden under threat of severe penalties...
Is there a reason why you had to extend Object class ?
Have you enabled logging for your package or class in log4j.properties? If not, Try adding log setting in following format:
log4j.logger.com.github.mycms.action=INFO
where "com.github.mycms.action" is the package where you class resides.
OR
log4j.logger.com.github.mycms.action.MoveMonthlyDataAction=INFO
where "com.github.mycms.action.MoveMonthlyDataAction" is the fqn of the class.
You can add the settings either in :
$TOMCAT_HOME/shared/classes/alfresco/extension/custom-log4j.properties
OR
You can add the settings either in your custom module which you are applying to alfresco.war:
<yourCustomModule>/src/main/resources/alfresco/module/<custom-module>/log4j.properties
OR
Use admin console to add the log settings, if you are using enterprise version (Note, when you restart server these settings won't persist):
http://<HOST : PORT>/alfresco/s/enterprise/admin/admin-log-settings
Hi @brijeshnk,
Just a note about the name of your class - there is no such word as "monthily" in the English language. I think you mean "monthly"? So it might be worth renaming your class to MoveMonthlyDataAction, and the methods accordingly - MoveMonthlyDataThreadRunner, setMoveMonthlyDataThreadRunner, etc. This may make usage and maintenance of your code easier in the long run.
HTH,
thanks for alerting this :-)
Hi thanks a lot for the response. I have configured this as mentioned below
I have added following configuration in $TOMCAT_HOME/shared/classes/alfresco/extension/custom-log4j.properties
log4j.logger.com.uia.archive.movedata.MoveMonthilyDataAction=INFO log4j.logger.com.uia.archive.movedata.MoveMonthilyDataThreadRunner=INFO log4j.logger.com.uia.archive.movedata.MoveMonthilyData=INFO
Result was :-
logs are printing out , but the in different logs. ( alfresco.lg and alfrescotomcat-stdout.2020-02-20.log)
logs from 'com.uia.archive.movedata.MoveMonthilyDataAction' class is printed in 'alfreso.log'.
Other class logs are printed in 'alfrescotomcat-stdout.2020-02-20.log' . Though all classes are same package and location .
Is there any specific reason for this or this behaviour is expected ?
thanks a lot
One thing I have noticed in your job class is that you are using JUL instead of Log4J, Commons Logging, or - way more ideal - SLF4J. While Commons Logging and SLF4J are both set up to log via Log4J in the backend, I do not think that JUL is set up in the same way. I can only recommend to ALWAYS use SLF4J logging APIs to ensure that a) you are logging to the same file(s) that Alfresco logs to and b) you are not dependent on any specific log backend implementation, and could switch to whatever (e.g. I switched to Logback instead of Log4J in one project).
Also, everything you output via System.out will land in the catalina.out, unless you configure Tomcat to ignore System.out. Generally speaking though, System.out should be forbidden under threat of severe penalties...
@afaust , Awesome !
that was perfect . I was using multiple logging package. I replaced all with log4j packages in all classes , All logs is are now visible in alfresco.log.
thanks a lot for this answer
Brijesh
Hi @brijeshnk,
Thanks for reporting back on how @afaust helped you out - this feedback is really useful for other users encountering similar problems.
Just a more or less generic question: Do we really want to discuss such basic programming questions here in the Alfresco forum? We're all busy people and I would appreciate it to focus on questions with stronger Alfresco focus and apply some rules similar to stack overflow ...
Ask for and offer help to other Alfresco Content Services Users and members of the Alfresco team.
Related links:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.