Self containing logs The "problem"

Define a function log (or other 3 letter name) which when called will log/print/write (whatever is the default for the language in question) both the instruction (as source) and the first argument. In other words:

i=777
j=333
log(i) //outputs: "log(i) 777"
log(i+j+1) //outputs: "log(i+j+1) 1111"


For all practical purposes the output i: 777 would be enough, but in some languages there are very specific reflection libraries for that, and that would be no challenge, so the entire instruction should be outputted.

Inspiration

The inspiration for this was me and another programmer discussing how irritating it is that often (with bad debuggers), you write things like console.log("i:", i), next we made a (pretty crazy) javascript (node only) solution (it outputs i: 777 rather than the entire line of source) which was suprisingly long and reminded me of codegolfing and made me wonder how much better other (especially code golfing) languages would fare.

Bonuses

-10%: No file reading (beyond the compiler)

PS. This is my first 'question' here, so feel free to point out any mistakes I made.
C (40 -10% = 36) (38 -10% = 34.2)
Note that, in C, a log function can only be defined for a specific type. Therefore, this log &quot;function&quot; takes only int arguments.
#define log(x)printf(&quot;log(&quot;#x&quot;) %d&quot;,x)

A more general solution specifies how to print the argument, in addition to the argument itself:
#define lg2(f,x)printf(&quot;lg2(&quot;#x&quot;) &quot;f,x)

which would be used as e.g. lg2(&quot;%s&quot;, &quot;I'm a string&quot;); or lg2(&quot;%f&quot;, 3.1415).