EDIT: I note that you said you don't want to create an extra private property. Then sorry. No. Not unless you make this an NSManagedObject subclass (and hook into the willAccessValueForKey system), or otherwise hook into the ObjC runtime on an NSObject (you could swizzle your own getter for instance to add logging; don't laugh, I've done that before). But all of these approaches are insane in Swift (and insane in ObjC; I only used them for debugging). Just make the backing variable.

If you only wanted to log the setter, then this would be straightforward: use willSet rather than set. But logging the getter requires implementing it all by hand. You do that with a private backing variable.