02-19-2020 07:59 AM
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
02-19-2020 10:12 AM
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
02-20-2020 08:53 AM
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...
02-19-2020 10:12 AM
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
02-20-2020 07:36 AM
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
02-20-2020 08:53 AM
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...
02-20-2020 09:27 AM
@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
02-20-2020 09:51 AM
Hi @brijeshnk,
Thanks for reporting back on how @afaust helped you out - this feedback is really useful for other users encountering similar problems.
02-21-2020 06:18 AM
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 ...
02-19-2020 11:17 AM
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,
02-20-2020 05:03 AM
thanks for alerting this 🙂
Explore our Alfresco products with the links below. Use labels to filter content by product module.