I'm not sure how it would need to be difficult.

In the bot:
Code:
on *:TEXT:!backlog:#channel:{
  if (%last. [ $+ [ $nick] ]) {
    msg $nick You must wait before requesting another log
    return
  }
  .play $nick logfile.txt 100
  set -u300 %last. $+ $nick 1
}
on *:TEXT:*:#channel:{
  write logfile.txt @ < $+ $nick $+ > $1-
  if ($lines(logfile.txt) > 25) write -dl1 logfile.txt
}


For users:
Code:
on ^*:TEXT:@ *:?:{
  if ($nick != botnick) return
  echo #channel $2-
  halt
}


I just made that code up in 5 mins.. so there are probably some bugs to tweak.

-genius_at_work