Your only real option is to log based on physical interfaces. You have a drop running to a particular interface on your switch, you know who owns that drop, you know who to make accountable for traffic entering and exiting that interface.
In a normal setup, you'll have one or more Ethernet lines running to each condo. The end of these, where the user plugs in, is usually referred to as a "drop". To implement this solution a managed switch or high-end router is needed. A managed switch allows the administrator to login via a command line or web interface and make configuration changes. Such switches have many options for logging and feature support, although using them requires some degree of technical expertise. The Cisco Catalyst family is a good example.
When I wrote that comment, I assumed you wanted logging of all traffic at Layer 3, corresponding to which IP addresses were accessed by which computers on which ports. If instead you want Layer 7 logging, you have a few more options.
Logging at Layer 7, the application layer, involves logging a specific protocol. This is only really feasible for HTTP. HTTP traffic can be logged by configuring Squid as a transparent proxy: you must modify routing tables on your main gateway (the host between your network and the internet) to redirect HTTP traffic from the condos to a separate Squid machine. Squid can then log the traffic (and process it, if desired) before sending it back to the gateway. You must configure the gateway to allow all traffic from the Squid machine to go directly to the Internet.
This transparent proxy solution may end up being rather resource-intensive; hence the use of a separate machine for your proxy. Squid must interpret and process all HTTP data being sent and received through the condos' computers.
The networking setup can also be a little tricky. It's important to evaluate your requirements and to create a maintainable system.