I'm using Firebase Crashlytics to report crashes. I'm using a game framework that handles logging for me and when running on Android, it logs to LogCat. I want to be able to include the LogCat logs with the crash report in Crashlytics. Is this possible?
I found this Library that could help (https://github.com/Ereza/LogcatReporter), but I'm not sure how well supported it is.
I know I can log like this:
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
crashlytics.log("my message");
crashlytics.log("E/TAG: my message");
But I would prefer for the framework I'm using to handle the logging.
Any way to include those LogCat logs? Does Firebase have a built in supported way?
I suppose there is no feature to save logs into Firebase Crashlytics, but I found an interesting solution for saving logs into Firebase Realtime Database.
Related
I'm trying to set up my app with firebase+crashlytics for having a better error dashboard.
All the firebase stuff is already working and I'm able to access the features
I tested crashlytics with:
Crashlytics.getInstance().crash(); // Force a crash
and i'm able to see the stack trace on my dashboard (inside firebase)
but I'm trying to log non-fatal messages like:
Crashlytics.log("test");
And it doesn't appear anywhere
I followed the whole instructions at:
https://firebase.google.com/docs/crashlytics/customize-crash-reports
Still doesn't find any dashboard with the "test" messages
Where does it go? what am I missing?
Sending non-debug errors (e.g. your test message) logs to Crashlytics locally, but these exceptions are not uploaded until the app restarts.
As the documentation states:
Crashlytics batches logged exceptions together and sends them the next time the app launches.
This is presumably due to the primary Crashlytics functionality (reporting crashes) working in the same way, and non-fatal errors being a secondary concern using the same code flow.
Whilst this is unfortunate, there are many third party log-collating services that can handle the non-fatal errors.
Note: I'm aware you've received an answer in the comments from Crashlytics, I'm providing a more comprehensive answer for future visitors.
It's an old question any way i wanted to share what happens to messages logged using Crashlytics.log(msg); These logs are not immediately shown to dashboard. Crashlytics stores all the logged messages logged using log(msg) method and uploads it to server when a new Crash or Exception occurs.
You can see these messages in Firebase console under logs section as shown in below image
One more thing if you want to log exceptions there is another method for it Crashlytics.logException(exception)
Crashlytics isn't made for develop logging/debug, it is made to cluster hundreds/thousands of logs from different users at runtime, this may cause delays between the time the log message are recorded and when you will really be able to see them at the dashboard making it unusable for development debug.
If you want to use Crashlytics to follow the code workflow and debug during development, you will need to use the trick in this answer.
https://stackoverflow.com/a/69340289/5679560
As mentioned in below link
https://support.crashlytics.com/knowledgebase/articles/120066-how-do-i-use-logging
You can see this crashes on Crashlytics dashboard if you look at the specific crash itself.
The recommended way to add custom logging to your app is:
Crashlytics.log(int priority, String tag, String msg)
As firebase started supporting Crashlytics the Firebase crash reporting option is no longer available. Is there any way to see the Firebase crash reporting for the existing app which already using Firebase crash reporting
Mike from Firebase here. If you don't see the screen that Yogesh mentioned, from the Crashlytics dashboard, click on your app under Crashlytics and you should see both Crashlytics and Crash Reporting mentioned in order to switch between the dashboards.
If your project using crash reporting, then it is showing like this.
or like this
I'm connecting to firebase from a android app. My app is supposed to be writing data to my firebase, but it isn't. I'm also not seeing any errors, warnings, etc. logged to the console. So how do I crank up logging for the firebase to see what's actually going on? Does such a thing exist? I tried searching the firebase API docs, but couldn't find anything.
Errors will be logged automatically.
You can get more verbose logging from the Firebase Database by calling:
FirebaseDatabase.getInstance().setLogLevel(Logger.Level.DEBUG);
I'm developing an Android app that is currently in the Play Store. I've been getting reports of a crash on certain devices that I can't reproduce, and the Play Store's built in crash diagnostics don't contain enough information. What I really need is the Logcat information from these devices, but it seems that Android 4.1 and above don't allow the use of those "Log Collector" apps that used to be so popular for this purpose due to security concerns. Is there a library that I can add to my app that will allow it to log to a remote server on demand? I know enough about this crash that I could put a call to some mythical sendLogcatNow() function in the appropriate spot in the code, if I had such a function. Since the information I seek is not actually part of the crash (the crash occurs later), normal crash reporting tools such as Crashlytics don't seem like they will do what I need, but perhaps they have this feature and it's just not prominent in the documentation. Thanks!
There are few version for crash reporting..
Hockey App
Acra
BugSense
Android Remote stack trace
Since your app can always read logs for it's own process, you can also implement something of your own.
Out of all these, I personally prefer Acra. as it is most efficient and give many options to app developers.
I'm using ACRA for logging crashes from my app but based on their documentation,
you can add your own variables content or debug traces to the reports
you can send error reports even if the application doesn't crash
Which seems to be doing what you want.
https://github.com/ACRA/acra
You will need to run your own ACRA server (simple enough to run) and get your app to send the crash logs to your server. Everything is detailed on their website.
I would look into using a third party production crash system, there are a few out there. I am currently using Crashlytics. This specific service allows you to log and set key value pairs during the running of the application that get packaged with the crash report. These services also offer greater insight into the device type, OS and a variety of other device details.
With this set up I have then created a log function that will submit to the Crashlytics service as well as logging it to log cat.
You can also use Google Analytics or Flurry. But note that Google Analytics doesn't log stack traces and Flurry doesn't support real-time log reports on server.
I'm curious if I start using ACRA error reporting will error reports still show up in the Developer Console? If not, is there a way to allow for both? I'd like to be able to log into my dev console and see any new reports then go check the ACRA spreadsheet for more information.
I actually recommend that you use bugsense in conjunction with acra. It has a really nice interface in my opinion and you can use acra fields and whatnot.