5 Replies Latest reply on Oct 8, 2015 8:12 AM by Steve Sommers

    How to write out a log file?

    2Charlie Level 1

      I have this function below and I tried to write the result of query to log file but it failed every time I ran. the CFLog tag as third line from the bottom. Any suggestion is much appreciated.

       

      <cffunction name="getCommonSpotPages" access="public" returnType="query">

        <cfset var qryCSPages = queryNew("")>

        <cftry>

        <cfquery name="qryCSPages" datasource="#application.sitemap.sDSN#">

        select p.ID, s.subsiteURL, p.filename, p.DateContentLastModified, u.publicFileName, p.uploaded as bIsUploaded, s.uploadURL,

        (select fieldValue from data_fieldValue dfv where p.ID = dfv.pageID and dfv.fieldID = #application.sitemap.nPriorityFieldID# and dfv.versionState = 2 ) as nPriority,

        (select fieldValue from data_fieldValue dfv where p.ID = dfv.pageID and dfv.fieldID = #application.sitemap.sFrequencyFieldID# and dfv.versionState = 2 ) as sFrequency

        from SitePages p

        join SubSites s

        on p.SubSiteID = s.id

        left join UploadedDocs u

        on p.id = u.pageID

        where (p.expDate is null

        OR p.expDate > getdate())

        and p.pageType = 0 <!--- uploaded documents and content pages only --->

        and p.approvalStatus <> 1 <!--- // exclude inactive pages --->

        and s.siteState <> 0 <!--- // exclude inactive subsites --->

        and s.subsiteURL not like '%training%' <!--- specify all pages inside of the subsite to be exlcuded from the sitemap --->

        and s.ID not in (<cfqueryparam value="#application.sitemap.lstExcludeSubsites#" cfsqltype="CF_SQL_INTEGER" list="yes" /> ) <!--- // exclude particular subsites --->

        order by p.ID desc

        </cfquery>

        <cfcatch><cfdump var="#cfcatch#"></cfcatch>

        </cftry>

        <cflog text="#qryCSPages#" type="Information" file="queryPages">

        <cfreturn qryCsPages>

      </cffunction>

        • 1. Re: How to write out a log file?
          WolfShade Level 4

          You are sending a query object (complex) to a log as a string (simple).  If you REALLY want all of that information in a log file (if it's a lot of data, I wouldn't), you have to loop the query (if more than one record is returned) and spell out each column for each iteration.

           

          HTH,

           

          ^_^

           

          EX

          <cfoutput query="qryCSPages">
          <cflog text="#ID#: #subsiteURL# - #filename# - #DateContentLastModified# - #publicFileName# - #blsUploaded# - #uploadURL#." type="information" file="querypages" />
          </cfoutput>
          
          • 2. Re: How to write out a log file?
            2Charlie Level 1

            I've modified the query with a result attribute and log the SQL property as followed but it's still not generating any log. By the way, is there a way to specify where the log file will be created? I do a search for queryPages and nothing was found.

             

            <cflog text="#tmpResult.SQL#" type="Information" file="queryPages">

            • 3. Re: How to write out a log file?
              WolfShade Level 4

              All the tmpResult.sql does is print the SQL that was run from within the query.

               

              You cannot tell CF where to save logs.  They are available at [DRIVE]/cfusion/logs - go there and look for your log.  It can also be accessed via CFAdmin, under DEBUGGING AND LOGGING.

               

              HTH,

               

              ^_^

              • 4. Re: How to write out a log file?
                2Charlie Level 1

                Thanks!  I found the log.

                • 5. Re: How to write out a log file?
                  Steve Sommers Level 4

                  If you want more control of your logs (I highly recommend this for all production applications) then learn up on log4j -- this is what cflog uses underneath the covers. I've learned over time that proper and abundant logging is as important as proper and abundant testing for supporting a system.