can't save database caustom log in catch region of a try catch

Hi all,
I have a strange problem. Probably there is a reason but I cannot get it. 
I was asked by my client to develop a custom logger to database. It should be very simple and it is very simple.
I also created the table CCC_Logs to store the records.
The Logger I developed is an Vbnet object, it has a property (among the others) that is the Connection of type IConnection and a method (among the others) that is “WriteLog(…)”

Public Class CCC_Logs
Private Property Connection As IConnection

Public Sub New(ByRef connection As IConnection)
Me.Connection = connection
End Sub

Public Sub WriteLog(ByVal ccc_ Message as string)
Dim logRecord As ISingleDbObject = Me.Connection.CreateSingle("CCC_Logs")
logRecord ("CCC_Message").NewValue = ccc_Message
logRecord.Save()
end sub
End Class

The idea is to instantiate the object Logger passing the Connection and then call the method WriteLog to persist the info on the database. It works VERY WELL but it stops working if I try to log something into a catch section. I mean, if I do this:

Public sub xxxx()
Dim logger As CCC_Logs = New CCC_Logs(Connection)
logger.WriteLog(“Log 1!”)
Try
logger.WriteLog(“Log 2!”)
Catch
logger.WriteLog(“Log 3!”)
End try
End sub

If I run this simple code, on the database I only find "Log 1!" and "Log 2!" but it seems that "Log 3!" is not persisted, even if no error or exception are raised during the execution of the statement logger.WriteLog(“Log 3!”).
Please, how can I fix this? Why in the catch section the code stops working?

Version 8.12
Thank you in advance to anyone who can help
Alberto