Open source can be viewed as one approach to outsourcing: inviting others to look, use, and extend your code. It's a common piece of advice that a business should do its core business functions in house and should (or at least can) outsource anything that isn't one of its core business functions. If you apply this business advice to software development, this means that even if you decide (or your boss decides) not to open source the core functionality of your software, you can open source some or all of its infrastructure - logging, unit testing extensions, other support routines, what have you - to get some of the advantages of open sourcing without giving any (significant) advantage to your competitors. (Sure, they might be able to use your support routines, but if you successfully build a community around your software, then advantage of getting contributions from non-competitors will outweigh the disadvantage of competitors being able to use the routines.)
If you're currently using or building on any open source libraries (and there's a lot of good stuff to build on!), then the case for open sourcing your support routines that build on those libraries becomes stronger. By doing so, you can become a recognized contributor to the community and can help influence the future direction of that software in ways that help your company. (This isn't to say that you should exploit the open source community, it's just recognizing that software evolves to meet the needs of its users, so the more you're recognized as a user, the more directly that evolution benefits you.)