Assertions should only be used for cases which absolutely break the code and should never happen. They're strictly sanity checks.

If you have a case in which it actually makes sense to log an error but continue, then you should be using return codes or exceptions to indicate the error rather than assertions.