You can either code it yourself or use an Oracle feature, and there are valid reasons why you would choose one path and not the other.

Just be aware that if there is a problem with the logon trigger you could prevent non-DBA's from logging onto the database. For example if your tablespace fills up and you don't have any error handling an exception gets thrown and none of you users will be able to logon. You should also be somewhat familiar with writing PL/SQL. But as with anything good testing will help you to see what the pitfalls are.