Mark,

I agree with you concerning *abnormal* conditions. The point
is that the code quoted is a *normal* condition in most cases.
Only at application development time, there could be
an interest in knowing the source of this event. Therefore,
the printStacktrace() if DEBUG level is enabled.

Thus, again, I do not think that there is a need for a
new listener or callback here.

Best regards,
Frank

Mark Gorokhov schrieb:
If the error in the agent is not abnormal it should be processed.
If the error triggers printStackTrace() the error cannot be processed. In this case printing it to console makes no sense
because console on a server is not visible and never monitored
in production environment. This problem will never become known because it is never exposed.

I think that the same approach should be taken for logging error conditions. Consider that log is never checked in production. This might be because of bad practice, or because the production server cannot be accessed, or because of the size of the log. Who could read millions of log lines on regular bases and decide where is a real problem?
My preference is to notify about any abnormal condition some
registered listeneres. These listeners in the main application
should decide how to process the event or ignore it.

I think that any 3rd party library should not use printStackTrace().
Also silent error conditions logging should be discouraged.
Use notifications (event+listener) to the caller or throwing
XxxxRuntimeException is preferred.

Mark G

-----Original Message-----
From: Frank Fock [mailto:[EMAIL PROTECTED] Sent: Saturday, August 02, 2008 2:10 AM
To: Mark Gorokhov
Cc: Wilson Burgos; [email protected]
Subject: Re: [SNMP4J] SnmpRequest.java not logging errors

Hi,

There is IMHO no abnormal program event
that is "logged" to console and not forwarded
to the logging adapter. The event below is
a *normal* program event, since returning
a SNMP error status is a normal task of a
SNMP agent.

So, printing the stacktrace here in debug
mode is for debugging only, or do you
want to log each SNMP error returned
by the agent in production?

Best regards,
Frank

Mark Gorokhov schrieb:
I support this request to remove all printStackTrace() from SNMP4J code and use only RuntimeExceptions. Other option is to add error event listeners and let them decide what to do with the problem.

Mark G.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On
Behalf Of Wilson Burgos
Sent: Friday, August 01, 2008 1:16 PM
To: [email protected]
Subject: [SNMP4J] SnmpRequest.java not logging errors

Hello,
        I'm using SNMP4j and I can't seem to log SNMP errors when debug
is enabled. I found out the SnmpRequest.java is dumping them to the
console only. Is this the intended behavior not log error messages?

public void requestStatusChanged(RequestStatusEvent event) {
      int newStatus = event.getStatus().getErrorStatus();
      setErrorStatus(newStatus);
      if (logger.isDebugEnabled() &&
          (newStatus != SnmpConstants.SNMP_ERROR_SUCCESS)) {
new Exception("Error '"+ PDU.toErrorStatusText(event.getStatus().getErrorStatus())+
                      "' generated at: "+vb).printStackTrace();
      }
}

Thanks,
Wil
_______________________________________________
SNMP4J mailing list
[email protected]
http://lists.agentpp.org/mailman/listinfo/snmp4j
_______________________________________________
SNMP4J mailing list
[email protected]
http://lists.agentpp.org/mailman/listinfo/snmp4j


_______________________________________________
SNMP4J mailing list
[email protected]
http://lists.agentpp.org/mailman/listinfo/snmp4j

Reply via email to