Keep in mind that entries.remove(0) is an expensive operation on an ArrayList: the rest of the array (indexes 1...N) must be moved. If there are more removes than lookups (= if the log is normally at full capacity, so that every append operation triggers a remove(0)), then a LinkedList would be more efficient.
Having the state of an offset in this class violates the single responsibility principle. The class has 2 responsibilities now:
- Add log entries
- Manage state of an offset for viewing
You should split the class to separate these responsibilities. Let Log focus on logging only, and I suggest to rename it to Logger, to make it more specific and clear. Move the offset and its methods to another class, for example LogViewer. LogViewer can have a Logger, and an offset, and present a view from the Logger's entries based on the offset.
Avoid using a Constants class. It breaks encapsulation. Its current fields are only used by the logger class. It would seem best to make them private. If another class needs to know these values, they can get them from the logger class.
About naming, do follow the suggestions of @Sleiman Jneidi@Sleiman Jneidi. Readability is very important.