Log function.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Log function.
# 1  
Old 01-30-2013
Log function.

I have to make a log function which will take any statement and write it to a file along with the time stamp.Right now I have the following code:

Code:
log()
{
 echo "`date` `hostname`: $1" >> logfile
}
 
echo "Some statement."
log  "Some statement."

This way I can see "Some statement." on my console and it will be written to logfile along with timestamp and hostname.

So is there any way to make that echo and log into one statement.
This seems to solve the issue:

Code:
log()
{
 echo "$1"
 echo "`date` `hostname`: $1" >> logfile
}
 
log  "Some statement."

Is there any other way?

The thing is I want "Some statement" displayed on console without timestamp and written to a file along with the timestamp.

Thanks in advance.

Last edited by chacko193; 01-30-2013 at 10:17 AM..
# 2  
Old 01-30-2013
I think you would have to show us some sample of what you want, it is still confused in my mind...
# 3  
Old 01-30-2013
Since you want two different outputs for console & log file then you do not have any other option other than using two echo statements.

But if your requirement is just one output, then have a look at tee command manual.
# 4  
Old 01-31-2013
Quote:
Originally Posted by vbe
I think you would have to show us some sample of what you want, it is still confused in my mind...
Its simple.Let's say we have some function log().So when I do this:
Code:
log "Called log."

I want Called log. displyed on console and I want a log file in which the function makes an entry like this:
Code:
Wed Jan 30 23:25:02 MST 2013 : Called log.

I already have a code for log() function.
Code:
log()
{
 echo "$1"
 echo "`date` `hostname`: $1" >> logfile
}
 
log  "Some statement."

My question is can I have a log() function without using two seperate echo statements?

---------- Post updated at 01:29 AM ---------- Previous update was at 01:27 AM ----------

Quote:
Originally Posted by bipinajith
Since you want two different outputs for console & log file then you do not have any other option other than using two echo statements.

But if your requirement is just one output, then have a look at tee command manual.
But I do want a timestamp in logfile, and displaying timestamp on console kinda feels bad.
# 5  
Old 01-31-2013
You can - read man tee as bipinajith suggests.

Then you can do things like

Code:
echo "this will be displayed on my console, and will be appended to the log" | tee -a $somelog

But - as you want two different pieces of output (i.e. the console output does NOT contain date and hostname, but the log output does) you will need two separate statements, and tee will not work for you.

Cheers,
ZB
# 6  
Old 01-31-2013
put the echo inside your function

Code:
log()
{
          echo "$1" 
          echo "`date` `hostname`: $1" >> logfile
} 
 
log  "Some statement."

# 7  
Old 01-31-2013
Quote:
Originally Posted by zazzybob
You can - read man tee as bipinajith suggests.

Then you can do things like

Code:
echo "this will be displayed on my console, and will be appended to the log" | tee -a $somelog

But - as you want two different pieces of output (i.e. the console output does NOT contain date and hostname, but the log output does) you will need two separate statements, and tee will not work for you.

Cheers,
ZB

I'm already using tee -a .But it doesn't help me in this case.So I think its better to use two dihhrent statements,I guess.Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Function - Make your function return an exit status

Hi All, Good Day, seeking for your assistance on how to not perform my 2nd, 3rd,4th etc.. function if my 1st function is in else condition. #Body function1() { if then echo "exist" else echo "not exist" } #if not exist in function1 my all other function will not proceed.... (4 Replies)
Discussion started by: meister29
4 Replies

2. Shell Programming and Scripting

Will files, creaetd in one function of the same script will be recognized in another function?

Dear All. I have a script, which process files one by one. In the script I have two functions. one sftp files to different server the other from existing file create file with different name. My question is: Will sftp function recognize files names , which are created in another... (1 Reply)
Discussion started by: digioleg54
1 Replies

3. Shell Programming and Scripting

Print the one function's log to the screen

c() { if something failed;then echo "failed" exit 1 fi } f() { functinona #if something failed call "c" functionb #if something failed call "c" } f > log 2>&1 #put the log to file not print on the screen I want all the stdout/stdrr to the log file... (3 Replies)
Discussion started by: yanglei_fage
3 Replies

4. Shell Programming and Scripting

Help to Modify File Name in each function before calling another function.

I have a script which does gunzip, zip and untar. Input to the script is file name and file directory (where file is located) I am reading the input parameters as follows: FILENAME=$1 FILEDIR=$2 I have created 3 functions that are as follows: 1) gunzip file 2) unzip file... (2 Replies)
Discussion started by: pinnacle
2 Replies

5. Shell Programming and Scripting

Function output to log file

Hi I have a shell script that does a whole bunch of things. For the sake of simplicity, assume it runs commands one two and three. What i ultimately need is the ability to display the output of the entire script on the screen as well as capture the output in a file. When I try to do it in the... (3 Replies)
Discussion started by: rch
3 Replies

6. Shell Programming and Scripting

To view the log of a function

I have a function like this validate() { /* Inside this I will do some activites } How I can redirect this function to a log file , so that If I look into that log file I can understand ,is there any error happened inside the function or not (3 Replies)
Discussion started by: saj
3 Replies

7. Shell Programming and Scripting

SHELL SCRIPT Function Calling Another Function Please Help...

This is my function which is creating three variables based on counter & writing these variable to database by calling another function writeRecord but only one record is getting wrote in DB.... Please advise ASAP...:confused: function InsertFtg { FTGSTR="" echo "Saurabh is GREAT $#" let... (2 Replies)
Discussion started by: omkar.sonawane
2 Replies

8. Shell Programming and Scripting

Passing global variable to a function which is called by another function

Hi , I have three funcions f1, f2 and f3 . f1 calls f2 and f2 calls f3 . I have a global variable "period" which i want to pass to f3 . Can i pass the variable directly in the definition of f3 ? Pls help . sars (4 Replies)
Discussion started by: sars
4 Replies

9. Programming

what is wrong with the log function in c?

Hi I looked up the reference but couldn't figure out whats wrong with my log funtions in ANSI C, need this log functions for a memory compiler, please help!! #include <stdio.h> #include <math.h> int main(void) { double d ; double logB(double x, double base); printf(" ... (2 Replies)
Discussion started by: return_user
2 Replies

10. Shell Programming and Scripting

Log function

How do i write a code to convert watt to dBm and vice versa? 1o log(w) + 30 = dBm Thanks! (17 Replies)
Discussion started by: Ernst
17 Replies
Login or Register to Ask a Question