An unfortunate truth that all software products have to deal with is that bugs happen. There's no such thing as a software product being bug-free. When bugs happen though, it usually is necessary to gather more detailed information than what is seen out of the box.
The following pre-requisites will be necessary to accomplish the goals of this article:
- Host/superuser-level access to your Hotcakes store administration
- Direct access to the website file system (FTP is okay)
- Familiarity reading and editing HTML and/or XML
There really isn't much required for you to get started. Just make sure you have the requirements ready. Outside of that, be ready to duplicate the issue(s) that you're experiencing.
DO NOT perform these steps unless you are trying to get support for an issue on your site. Applying these steps will interfere with the speed of your website.
The result of these steps will ensure that you can get the best support possible, be it from the community or our support staff.
HOW TO GET DETAILED ERROR REPORTS
First, you can indeed get errors from the pages on your site if you're logged in using the Host/Superuser account. You can get these same errors and more from the Admin menu, in the Event Viewer page. Still, it won't be as complete as the method below.
In short, we will need you to do the following:
- Download the symbols files for the version of Hotcakes you're on.
- Add the symbols files to your Bin folder.
- Enable debugging on your site.
- Change the Log4Net file setting to report more information.
- Reproduce the issue(s).
- Save a copy of the log file.
- Revert your changes.
- Send the details.
Symbols files are files that compliment your application code files with information that can be used to generate helpful information for error reporting and developers. They are not in your site by default because their very presence can adversely impact the performance of your site. You can recognize a symbols file because they always end in PDB. For example, if you have symbols files for Hotcakes already, one might be namedHotcakes.Commerce.pdb.
You will always find the latest symbols files on the Hotcakes Downloads page. When you scroll down, you'll find it here.
If you're looking for symbols for an older version of Hotcakes, please create a support request, or ask our partners if you're working with one.
Add Symbols Files to Your Site
The symbols files won't do anything for you unless you put them in the right place. You will want to open the folder on your server where you website files are located. If you're in the right place, the folder structure will look like the image below.
Bin Folder Location: ~[site root]\Bin
Open the Bin folder and extract the symbols files into the Bin folder using your favorite zip tool (e.g., Windows, 7-Zip, jZip, etc.). If you did it right, part of the files might look like the image below.
Stay in the website directory.
This and the next step are the more technical steps in this process. You should already be in the website's file system. In the root-level of this folder you will see a file named web.config. Open this file in your favorite text editor.
Do a search for the following text:
<compilation debug="false" strict="false" targetFramework="4.0">
Change "false" to "true" and save the file. Don't close it. The result should look like this.
<compilation debug="true" strict="false" targetFramework="4.0">
Change the Log4Net File
You have a configuration file in the same place as your web.config file called DotNetNuke.Log4Net.config. This file controls one of the underlying error reporting tools called Log4Net. Open this file in your favorite text editor.
Find the line of code that looks like the following:
<level value="Error" />
Change "Errors" to "All" and save the file. Don't close it. The result should look like this.
<level value="All" />
Reproduce the Issue(s)
The whole reason you're here should be because you ran into a bug of some kind. You saw an error as a result. Perform the same steps that you took before to get the error. Once you see the error, you may notice that the same error you received before is now a bit bigger. As soon as you see the error message, you can move to the next step.
Please note that in addition to seeing the error, it would be extremely helpful to still create a "screen shot" of the page where the error is being experienced. There are many free tools to help make this incredibly easy to do, such as Jing by TechSmith.
Save a Copy of the Log File
There's always a running log of information being saved on your site for the event that you need to reference it - like right now. You'll find the log files in the folder shown below.
Log File Location: ~\[site root]\Portals\_default\Logs\
You'll see a log file with a name matching dates that the site has been running. Find one of the last one that matches the current date, or the date of the error. Save a copy of that file to another location, such as your desktop.
If the current date is 04/29/2015, then the file name would be 2015.04.29.log.resources. If you want, you can open this file with any text editor to see the information it contains.
Revert Your Changes
Now that you have the information you need to report back to the community or support, you no longer need to keep the changes you just made. In fact, it wouldn't be a good idea at all to keep those changes since they could potentially slow your website. Remember to revert the changes you made as listed below.
- Remove any PDB files from the Bin folder.
- Turn off debugging in the web.config file.
- Only log errors in the Log4Net config file.
Send the Details
Collect the information you've gathered (e.g., screen shots, error logs, etc.) and prepare them to send to support or community. This might include putting them into a zip file, Dropbox, WeTransfer, or something else.
You also might consider reviewing the information you've gathered for potential security and privacy issues. Change any passwords, server names, usernames, and more as necessary.
Once you're error details are ready to share, send the link or attachments to the appropriate place.
That's it... You're all done! We'll take it from here.