Sorry Mayank, my bad. I didn't realize you were connected via an nREPL 
client. I guess you need an appender supported by nREPL server to do this 
kind of a thing.

Shantanu

On Thursday, 17 December 2015 12:24:36 UTC+5:30, Mayank Jain wrote:
>
> I tried both the solutions, neither worked.
>
> Solution #1 - Use only clojure.tools.logging
>
> My Dependencies
> [[org.clojure/clojure "1.7.0"]
>  [org.clojure/tools.logging "0.3.1"]]
>
> Repl Output
> > (require '[clojure.tools.logging :as ctl])
> nil
> > (ctl/error "hi")
> nil
> > (ctl/info "hi")
> nil
>
> Console Output
> $ lein repl :headless :port 4005
> nREPL server started on port 4005 on host 127.0.0.1 - nrepl://
> 127.0.0.1:4005
> Dec 17, 2015 12:07:16 PM clojure.tools.logging$eval406$fn__410 invoke
> SEVERE: hi
> Dec 17, 2015 12:07:22 PM clojure.tools.logging$eval406$fn__410 invoke
> INFO: hi
>
>
> Solution #2 - Add suggested dependencies
>
> My Dependencies
> [[org.clojure/clojure "1.7.0"]
>  [org.clojure/tools.logging "0.3.1"]
>  [org.slf4j/slf4j-log4j12 "1.7.13"]
>  [org.slf4j/slf4j-api "1.7.13"]
>  [log4j/log4j "1.2.17"]]
>
> Repl Output
> > (require '[clojure.tools.logging :as ctl])
> nil
> > (ctl/error "hi")
> nil
>
> Console Output
> $ lein repl :headless :port 4005
> nREPL server started on port 4005 on host 127.0.0.1 - nrepl://
> 127.0.0.1:4005
> 2015-12-17 12:11:50 ERROR user:288 - hi
>
> Am I missing something?
>
> Other infomation:
> $ java -version
> java version "1.8.0_45"
> Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
> Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
>
> $ lein -v
> Leiningen 2.5.3 on Java 1.8.0_45 Java HotSpot(TM) 64-Bit Server VM
>
> Emacs 24.5
> OS: Mac OS 10.10.5 
>
>
> On Thursday, December 17, 2015 at 7:58:37 AM UTC+5:30, Shantanu Kumar 
> wrote:
>>
>> Below is the order in which c.t.l picks up loggers:
>> 1. SLF4j (which also includes Logback, since it natively implements the 
>> SLF4j API)
>> 2. Apache Commons-logging
>> 3. Log4j
>> 4. java.util.logging
>>
>> Reference: 
>> https://github.com/clojure/tools.logging/blob/master/src/main/clojure/clojure/tools/logging/impl.clj#L214
>>
>> Both #1 and #2 are merely logger facade, incapable of logging anywhere 
>> except to the console by themselves. They need an underlying logger for 
>> real-world logging.
>>
>> Your dependencies only include the SLF4j-log4j bridge (without the log4j 
>> dependency), which I am not sure is supposed to be picked up by c.t.l. I 
>> would suggest either remove slf4j-log4j dependency altogether (allowing 
>> j.u.l to be chosen) or add the slf4j [org.slf4j/slf4j-api "1.7.13"]
>>  and log4j [log4j/log4j "1.2.17"] dependencies to your current config.
>>
>> Hope this helps.
>>
>> Shantanu
>>
>> On Wednesday, 16 December 2015 23:47:39 UTC+5:30, Mayank Jain wrote:
>>>
>>> Thanks Shantanu for your reply,
>>>
>>> It still didn't work.
>>>
>>> Here's my project.clj
>>> (defproject log "0.1.0-SNAPSHOT"
>>>   :description "FIXME: write description"
>>>   :url "http://example.com/FIXME";
>>>   :license {:name "Eclipse Public License"
>>>             :url "http://www.eclipse.org/legal/epl-v10.html"}
>>>   :dependencies [[org.clojure/clojure "1.7.0"]
>>>                  [org.clojure/tools.logging "0.3.1"]
>>>                  [org.slf4j/slf4j-log4j12 "1.7.13"]])
>>>
>>>
>>> And here's my resources/log4j.properties file
>>> # Root logger option
>>> log4j.rootLogger=INFO, stdout
>>>
>>> # Direct log messages to stdout
>>> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>>> log4j.appender.stdout.Target=System.out
>>> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>>> log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} 
>>> %-5p %c{1}:%L - %m%n
>>>
>>> And here's my the output from my Clojure repl in Emacs:
>>> user> (require '[clojure.tools.logging :as ctl])
>>> nil
>>> user> (ctl/error "Fail!")
>>> nil
>>>
>>> And here's what I get on my console
>>> $ lein repl :headless :port 4005
>>> nREPL server started on port 4005 on host 127.0.0.1 - nrepl://
>>> 127.0.0.1:4005
>>> 2015-12-16 23:44:50 ERROR user:288 - Fail!
>>>
>>> I would like it to print the same on both Emacs repl and on console (and 
>>> add to a file).
>>>
>>> I can get it to write on console and file but not on repl.
>>>
>>> On Wednesday, December 16, 2015 at 10:13:12 PM UTC+5:30, Shantanu Kumar 
>>> wrote:
>>>>
>>>> If you enabled Log4j console logger, the logs should appear in the REPL 
>>>> too.
>>>>
>>>> See example at 
>>>> http://www.mkyong.com/logging/log4j-log4j-properties-examples/
>>>>
>>>> You do not necessarily need log4j to log to the REPL via 
>>>> clojure.tools.logging - you can just use c.t.l. without any logging 
>>>> library 
>>>> and it will fall back to java.util.logging using STDOUT.
>>>>
>>>> Shantanu
>>>>
>>>> On Wednesday, 16 December 2015 21:58:40 UTC+5:30, Mayank Jain wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I would like to be able to print log statements 
>>>>> via clojure.tools.logging to print on clojure repl as well.
>>>>> I am using log4j logging framework for configurations.
>>>>> Is this possible? I am unable to figure it out. 
>>>>> I am open to any other logging framework if that solves this.
>>>>>
>>>>> Thanks.
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to