Experiment I'm Going to Try: Live Debugging of Released Apps for Corona

I’m not sure if the rest of you have ever experienced the situation where you release an app and your reviewers start notifying you of bugs in your reviews, sometimes with a low star rating.

“After you get to certain levels it just stops working. I love the game but it just stops. If you fix the problem and i can finish the levels then it will get 5 stars.”

Basically, you released your app and missed a bug because it’s not possible to test ALL use-cases of your app. But your users DO test all possible use-cases and are experiencing bugs you didn’t anticipate, and many of those who find them never notify you, they just stop playing.

To beat this issue, I’m going to implement a free logging library for Corona that will send Corona crash logs from your users to Loggly, which is a cloud-based SaaS log aggregator

It would make use of Corona’s error handling functionality, but instead of writing to console or a popup, it would first encode the error log into JSON write it to a Loggly logging server for aggregation, so that you can view (and even visualize) real logs from actual users of your released app.

It’d look something like this

local logData local function cloudLogger( event )    if releaseBuild then        --Theoretical function that use Corona's JSON libraries        --to parse event.error message into a JSON string that        --makes sense to Loggly's servers        logData = logEncoder.encode(event.errormessage)        network.request(http://logs-01.loggly.com/bulk/TOKEN/tag/bulk/, "POST", networkListener, logData)    else        print( "Not handling the unhandled error \>\>\>\n", event.errorMessage )    end        return releaseBuild end runtime:addEventListener("unhandledError", cloudLogger)

Of course this is a greatly oversimplified example, but it conveys the basic idea of sending the log data to a cloud-based log aggregator like Loggly for aggregation. When this library is completed I’ll post the results of its usage and the git where you can download the code for use :).  

Would anyone be interested to see the results?

Looks very useful for app testers at least and cloud based logging sounds pretty cool!

Well for several years I ran a medium-sized game company that did original IPs and a lot of game programming for hire for some of the bigger publishers and developers out there.  Some of the games I worked on had very high DAU (like 300k or more) and they used logging (Loggly specifically) to great effect to figure out what was happening in their live server environment and on the mobile clients interacting with it. It let us know of errors immediately and what conditions on the clients caused certain bugs (slow networks, hardware specs, use-cases  you never thought users would do, but they do it on day 1), something that would’ve been hard to replicate in a dev environment.

That’s what made me a believer in it :D.

I use Corona for small app ideas, and I’ve been using cloud-based logging on the apps I do, and it’s allowed me to make apps that are *nearly* bug free in production, plus give me some system-level insight on how users play the game (like how long it takes for the apps to load up on different devices, how the apps play on slow connections, etc.).

When I get some time, I’ll post some real stats!  And the library should take me about two weeks to code and test given current work obligations.

I thought maybe there was a privacy issue regarding that, but I’m too sure about all that :slight_smile: I just keep on the safe side to be sure. Sounds like it could be a really useful library though. 

Yeah that’s something I’ll have to check into.  It’s not much different than say, sending data to flurry, and I think that it can be made OK by both app store by including the proper permissions.

I think what exact data you send matters, so I’ll check into that and include a note about how to include the library without offending any apple/google/amazon terms.

Looks very useful for app testers at least and cloud based logging sounds pretty cool!

Well for several years I ran a medium-sized game company that did original IPs and a lot of game programming for hire for some of the bigger publishers and developers out there.  Some of the games I worked on had very high DAU (like 300k or more) and they used logging (Loggly specifically) to great effect to figure out what was happening in their live server environment and on the mobile clients interacting with it. It let us know of errors immediately and what conditions on the clients caused certain bugs (slow networks, hardware specs, use-cases  you never thought users would do, but they do it on day 1), something that would’ve been hard to replicate in a dev environment.

That’s what made me a believer in it :D.

I use Corona for small app ideas, and I’ve been using cloud-based logging on the apps I do, and it’s allowed me to make apps that are *nearly* bug free in production, plus give me some system-level insight on how users play the game (like how long it takes for the apps to load up on different devices, how the apps play on slow connections, etc.).

When I get some time, I’ll post some real stats!  And the library should take me about two weeks to code and test given current work obligations.

I thought maybe there was a privacy issue regarding that, but I’m too sure about all that :slight_smile: I just keep on the safe side to be sure. Sounds like it could be a really useful library though. 

Yeah that’s something I’ll have to check into.  It’s not much different than say, sending data to flurry, and I think that it can be made OK by both app store by including the proper permissions.

I think what exact data you send matters, so I’ll check into that and include a note about how to include the library without offending any apple/google/amazon terms.