Start a new topic

GAE logs all my BL code

I linked a GAE app to a Custom Endpoint.

Every time I send a request to this Custom Endpoint (and of course the request goes to the GAE app), the app logs all my BL code.

It's quite a long log each time :D

Is this my fault or is it something that automatically happens?

Can I disable this?

** I created my GAE application starting from the sample "quickstart" that is in Kinvey BL SDK. **

all I do about logging is to import the logger

import java.util.logging.Logger;

initialize it:

public class Resize {

public final static Logger LOGGER = Logger.getLogger(Resize.class.getName());


and use it a few times like this:"fileUrl: " + fileUrl);

What else are you logging? It doesn't seem like the above would cause it.
hmm, okay so it's not something that happens by default...

On that file I have no other log with "LOGGER", if not a"Done.");

I don't know if there's other ways to log and I accidentally wrote that without realizing it...but I don't think so.

In I have the only other log:


public class AppConfiguration implements ServletContextListener {

private final static Logger LOGGER = Logger.getLogger(AppConfiguration.class.getName());

..."App is being configured.");


And then I have something on web.xml about "LoggingFilter" ...but that's just some parameter and it was there by default.

Studying a bit the log I realized it's all part of something that basically logs my request, in a very extended way: there's headers, body, authorization, but also a big part containing all my Kinvey account parameters... and within these, under "arguments"."bl" I have listed all my BL code.

This is how my logs look like on GAE:

(I was wrong saying it doesn't log my logs...cause I realized it actually does, I just had a hard time finding them ;) )

com.sun.jersey.api.container.filter.LoggingFilter filter: 2 * Server in-bound request

2 > POST

2 > Accept: /

2 > Host:

2 > Content-Type: application/json

2 > Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2 > Content-Length: 62787

2 > User-Agent: Restler for node.js

2 > X-AppEngine-Country: ZZ

2 >


"arguments": {

"appId": "kid_xxxxxxxxxx",

"appMetadata": {

"API_version": 3,

"id": "kidxxxxxxxxxx",

"acl": {

"_customEndpoints": {

"test": "master-or-user",

"newChallenge": "master-or-user",

... many other similar ones ...

"getPostComments": "master-or-user",

"editGroup": "master-or-user"


"ErrorsLog": "append-read",

"Media": "append-read",

... many other similar ones ...

"UserInfo": "append-read",

"PostComment": "append-read"


"appId": "xxxxxxxxxxxxxxxxxxxxxxxx",

"appsecret": "xxxxxxxxxxxxxxxxxxxxxx",

"billing": {

"payment_method_id": null


"bl": {

"_custom": {

"endpoint-1": {"code": " ........ here all the code of my custom endpoint that here I called endoint-1 "},

"endpoint-2":{"code": " ........ here all the code of my custom endpoint that here I called endoint-2 "},

...... and so on with all the endpoints


"notification ":{},

" collection-1 ": {"

hasOnPreSave ":true,"

hasOnPreFetch ":true,"


code ":" ..... here all the code of the different hooks for collection-1"

... and then basically it goes on with the other collections, and other parameters about my

Kinvey account, the request body, headers, response, etc.

... and after all of this I have my log "Done."

actually, now that I read my post I realize that the log starts with LoggingFilter, that is exactly what's in the web.xml

I don't really know what that is or how it works, cause I used the default web.xml .... this is the code of that file:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns=""




<display-name>Kinvey External Business Logic Quickstart</display-name>
































You can see LoggingFilter as value in the first 2 init-params

Should I take one of those 2 init-param off the servlet?
That info is the data that is passed in the request, which I believe is logged in app engine.
Yep, it is logged on GAE -- sorry I realize I didn't specify where the data was logged.

But that makes it confusing for me to find any custom log I want to have and quickly fills up my Log storage space.

Is there a way to hinder the app to log the whole request?

I'll try deleting some element from web.xml and see what happens :D
Okay, cool, found the solution.

It was simple if I only knew more about Java web apps :)

Just need to delete the "com.sun.jersey.api.container.filter.LoggingFilter" reference from "ContainerRequestFilters" param on web.xml, cause I only want to read logs from the response, but I'm not interested in logging the whole request.

Login or Signup to post a comment