A use case must have an actor, since basically it just describes the added value for its actor. The author of the referenced article is simply wrong here.
P. 637 of the UML 2.5 specs:
Each UseCase specifies some behavior that a subject can perform in collaboration with one or more Actors.
...
A subject of a UseCase could be a system or any other element that may have behavior, such as a Component or Class. Each UseCase specifies a unit of useful functionality that the subject provides to its users
N.B.: Though the UML is the "true source", it's not a good read about use cases. Instead I highly recommend Bittner/Spence.
There are several ways to approach the Log error
"use case". One would be to <extend>
use cases with Log error
. But actually, there are a couple of drawbacks with this. Log error
might give additional value in the long term (system improvements and bug corrections), but it is not an a-priori added value. Also you would just clutter your use case diagrams.
A second way is to change the perspective and include the "system" itself as an actor. But this is an anti-pattern. So not recommended as well.
Finally, you could simply add a non-functional requirement to your system and just trace to the use cases which are relevant. This is what I'd recommend to do.
Your additional questions:
- A batch job is no use case, but a use case can be implemented as a batch job and the scheduler can be the actor.
- No, an event is an event and not an actor. An event can trigger a chain of actions being part of a use case.