Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

console.log not working in use function

Avatar

Level 2

I'm trying to write some logic in JavaScript file in my custom component but the use function is not firing the console.log. Does anyone know why it won't work. I even tried using window.alert but that won't work either. but I can create a var and assign a string value and display that value through expression in HTL. 

 

Here is the the JS code. 

use(function () {
  var props = {
    test: "test",
    test2: "test2"
  };
  console.log("----------------Test_---------")
  return {
    // anything exposed here can be used inside your template
    props: props,
  };
});​
1 Accepted Solution

Avatar

Correct answer by
Level 9

As you are using Use API, which is actually converted into JAVA instead of loading as a JS in a browser, you have to use JAVA object to log the information. Below code is working fine on my local.

log.info("Using USE API");

Also this log will be generated in server log files instead of browser console, so you have to create a log file of the component you are using for example if your component is /apps/we-retail/components/sample then you have to create a log file of : apps.weretail.components.sample from http://localhost:4502/system/console/slinglog

Please update if you need sample working code.

View solution in original post

3 Replies

Avatar

Level 5

Hi @snowwhite92 

 

Go to developer tools - > Source Tab -> Find your JS code and place a debug breakpoint on your code. See if the debugger stops at your breakpoints. See if the code is actually executed.

 

Thanks

Avatar

Level 5

This is server side javascript. window.alert() is for client side js.

Try to Add a new logger in AEM and print the statements with log.debug statements 

please check this https://jimfrenette.com/aem/javascript-use-api/ for help.

Avatar

Correct answer by
Level 9

As you are using Use API, which is actually converted into JAVA instead of loading as a JS in a browser, you have to use JAVA object to log the information. Below code is working fine on my local.

log.info("Using USE API");

Also this log will be generated in server log files instead of browser console, so you have to create a log file of the component you are using for example if your component is /apps/we-retail/components/sample then you have to create a log file of : apps.weretail.components.sample from http://localhost:4502/system/console/slinglog

Please update if you need sample working code.